我正在尝试验证网页上的文字。
使用的代码行是:@browser.test.include?('Favorites').should==true
当脚本执行此行时,我收到错误:undefined method 'should' for false:FalseClass (NoMethodError)
以下是完整代码:
require 'watir-webdriver'
require 'rspec'
@browser=Watir::Browser.new :ff
@browser.goto('http://enoteca.demo.episerver.com/en-US/')
@browser.link(:text=>'Register').wait_until_present
@browser.text.include?("Favorites").should==true
答案 0 :(得分:1)
您需要定义包含一个或多个示例的example group。例如:
require 'watir-webdriver'
require 'rspec'
describe "an example group" do
it "is an example" do
browser = Watir::Browser.new
browser.goto('www.example.org')
browser.text.include?('Domain').should==true
end
end
如果您将上述内容放在以_spec.rb
结尾的文件中(例如foo_spec.rb
),则可以在命令行或终端rspec foo_spec.rb
运行它。完成后,rspec将返回状态:
Finished in X.XX seconds (files took X.XXXX seconds to load)
1 example, 0 failures
此外,should
方法已在rspec3中弃用(尽管它现在仍然有效)。事实上,如果您使用should
,rspec3将返回弃用警告。
未明确使用来自rspec-expectations'旧
should
语法的:should
不推荐使用语法。使用新的:expect
语法或使用:should
明确启用config.expect_with(:rspec) { |c| c.syntax = :should }
。
以上是与上述相同的规范,但使用expect
代替should
:
describe "an example group" do
it "is an example" do
browser = Watir::Browser.new
browser.goto('www.example.org')
expect(browser.text).to include 'Domain' # expect method instead of should
end
end
答案 1 :(得分:0)
虽然我认为你应该使用一个示例组(如@orde所提到的),但这在技术上并不是必需的。您可以通过添加RSpec::Expectations
:
require 'watir-webdriver'
require 'rspec'
# Include the expectations so that they do not need an example group
include RSpec::Expectations
@browser=Watir::Browser.new :ff
@browser.goto('http://enoteca.demo.episerver.com/en-US/')
@browser.link(:text=>'Register').wait_until_present
@browser.text.include?("Favorites").should==true