请帮我解释为什么这只是启动浏览器,而不是加载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。
答案 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中。