How do I prevent Watir from auto closing firefox?

2019-09-26 07:38发布

问题:

I am automating test cases using Ruby and Watir. One of my methods opens the web browser, but as soon as my script leaves the "open browser" method and goes to the next method (filling out forms within the browser), the browser auto closes. When I automate using the IE browser it will not close until it hits the IE.close statement, but with firefox it closes automatically. Is there any way to avoid this?

Code:

require 'rubygems'
require 'watir-webdriver'
require 'rexml/document'

def openbrowser
  $user = "user"
  $pass = "password"

  ff = Watir::Browser.new :firefox
  ff.goto "http://<some website>"
  ff.text_field(:name, "username").set($user)
  ff.text_field(:name, "password").set($pass)
  ff.button(:value,"Sign In").click
  ff.link(:xpath => "html/body/div[1]/div[2]/a[1]").click
  ff.text_field(:name,"userID").set($ID)
  ff.button(:value,"View User").click
  ff.link(:xpath => "html/body/div[1]/ul[1]/li[2]/a").click

  sleep 20
end

# Run Program
openbrowser

回答1:

I use the Test Unit class, I open the browser in the setup method and generally close it down in the teardown method, this works for me in IE & Firefox.

More information here, http://wiki.openqa.org/display/WTR/Test+Unit



回答2:

I was attempting to run this code in NetBeans, so this behavior may just be specific to that editor.

There were two causes I have found for it shutting down, first is when there is an error in the code, the browser will shut down as soon as an exception is thrown. Second, the browser shuts down at the end of the program if there is no sleep established.