0

请帮我找出为什么这只是启动浏览器,而不是加载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

环境:

Windows 7 32 BITS Firefox 20 [也在 8.0 中尝试过] 已安装 - Watir、Watir-Webdriver、Selenium-Webdriver、rspec。

4

3 回答 3

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 块中:

before(:each) do
  @browser = Watir::Browser.new :firefox
  @browser.goto 'https://www.outbid.com/users/sign_in'
end
于 2013-05-06T16:11:25.337 回答
0

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

before(:all)1)在节中创建浏览器对象

2)在该before(:each)部分中或after(:each)确保您通过执行诸如点击注销页面之类的操作来进行清理,这样您就不会在会话进行时开始测试。

于 2013-05-09T00:08:24.180 回答
-1

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

于 2015-03-08T10:54:23.407 回答