On Apr 9, 3:03 am, Pranjal Jain <pranjal.jain... / gmail.com> wrote:
> Hi All
> I ma trying to call the function written in one script in other script.
> But it is giving me the error.
>
> The called script is 2.rb
>
> require 'watir'
> def test_b
>
> $ie1 = IE.new
>
> $ie1.text_field(:name, "q").set "pickaxe"
> $ie1.button(:name, "btnG").click
> #ie.showAllObjects
> end
>
> the calling script is 1.rb
>
> require 'watir'
> require '2'
>
> class TestCase
>
>   def test_a
>   $ie = IE.new
>   $ie.goto 'www.google.com'
> end
> test_b
>   end
>
> The error popped is as follows:
>
> /2.rb:4: in 'test_b': uninitialized constant IE(NameError)
>         from  1.rb:10
>
> Please help.
> Thanks in advance.
> --
> Posted viahttp://www.ruby-forum.com/.

Remember that ruby is interpreted, and code is evaluated line by line

> class TestCase
>   def test_a
>     $ie = IE.new
>     $ie.goto 'www.google.com'
>   end
test_a is defined but has NOT been executed
>   test_b
test_ is invoked here, the code is executed
Since test_a has not been executed yet $ie has not been defined
> end


I'd suggest:
class TestCase
  def test_a
    $ie = IE.new
    $ie.goto 'www.google.com'
    test_b
  end
end