Rspec:只启动Firefox窗口。它没有加载URL

时间:2013-05-06 07:21:42

标签: rspec watir-webdriver

请帮我解释为什么这只是启动浏览器,而不是加载https://www.outbid.com/users/sign_in

require "rubygems"
require "rspec"
require 'watir-webdriver'

@browser = Watir::Browser.new :firefox
describe "outbid login" do

before(:each) do
@browser.goto 'https://www.outbid.com/users/sign_in'
end


it "should succesfully login you in the outbid.com" do
@browser.text_field(:id=> "login_user_email").set 'outbiduser2@gmail.com'
@browser.text_field(:id=> "login_user_password").set 'c0mplex1234'
@browser.button(:value=> "Log in").click
@browser.close
end

end

ENV:

Windows 7 32比特 Firefox 20 [也在8.0中试过] 安装 - Watir,Watir-Webdriver,Selenium-Webdriver,rspec。

3 个答案:

答案 0 :(得分:1)

当我运行你的代码时,我得到以下异常:

Failures:

  1) outbid login should succesfully login you in the outbid.com
     Failure/Error: Unable to find matching line from backtrace
     NoMethodError:
       undefined method `goto' for nil:NilClass
     # stuff.rb:9:in `block (2 levels) in <main>'

问题是您创建的浏览器超出了测试范围。

该行

@browser = Watir::Browser.new :firefox

需要在测试范围内。

您希望在每个测试开始时创建它,因此将其包含在每个块之前:

before(:each) do
  @browser = Watir::Browser.new :firefox
  @browser.goto 'https://www.outbid.com/users/sign_in'
end

答案 1 :(得分:0)

总的来说,我喜欢贾斯汀的回答。但是,如果您想在每次测试之前节省打开和关闭浏览器的时间,那么我要做的就是

1)在before(:all)部分

中创建浏览器对象

2)在before(:each)部分或after(:each)中确保通过执行类似于登出页面的操作进行清理,因此您不会在会话开始时进行测试。

答案 2 :(得分:-1)

从seleniumHQ.com下载最新的selenium jar并将jar添加到您的Class中。