2011-08-03 139 views

回答

2

文本断言不webdriver的一部分,但你可以这样做:

assert driver.find_element(:tag_name, "body").text.include?(str) 
+0

未定义的main方法'assert':Object(NoMethodError) – Jack

+0

这假设您使用的是标准测试框架,如包含assert方法的TestUnit或MiniTest。这对于Ruby中的任何实际测试都是非常必要的。 – bbbco

1

硒的webdriver不来与一个内置的断言库,您需要有额外的一个来迎合你的断言需求。

现在来到红宝石的语言,那么最好的方法就是使用rspec。

你如何使用:
1)安装把它放在你的Gemfile的RSpec的,并做了捆绑安装
2)需要在你的框架 'rspec的'
3)使用rspec的期许
expect(actual-text).to include(expected-text)

这里充满单脚本示例

require 'selenium-webdriver' 
require 'rspec' 
include RSpec::Matchers 

def assert_text_present(expected_text) 
    expect(driver.find_element(:tag_name=>'body').text.include(expected_text)).to be true 
end 

driver = Selenium::WebDriver.for :chrome 
driver.get("https://rubygems.org/gems/testnow") 
assert_text_present("Kaushal") 

此外,您可以在一个程序定义这个方法def assert_text_present或者你的框架的帮助文件,并在需要时重复使用它。

注意:如果你把这个方法的框架,你可以使用包括直接匹配(expect(driver.find_element(:tag_name=>'body').text).to include(expected_text)

希望它可以帮助!

相关问题