我无法弄清楚seleniums webdriver的assertTextPresent等价物是什么。我找到了几个java的答案,但没有找到ruby。有没有人有任何想法?
答案 0 :(得分:2)
文本断言不是WebDriver的一部分,但您可以这样做:
assert driver.find_element(:tag_name, "body").text.include?(str)
答案 1 :(得分:1)
selenium-webdriver没有内置的断言库,你需要另外一个来满足你的断言需求。
现在使用ruby语言,最好的方法是使用rspec。
你如何使用它:
1)安装将其放入Gemfile中的rspec并进行捆绑安装
2)要求' rspec'在你的框架中
3)使用rspec-expectations
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
,并在需要时重复使用它。
注意:如果将此方法放在框架中,则可以直接使用include matcher(expect(driver.find_element(:tag_name=>'body').text).to include(expected_text)
)
希望它有所帮助!!
答案 2 :(得分:0)
我推荐rspec-expectations
这是真正全面的断言"库"。
在这种情况下,您可以使用以下匹配器:
expect(actual_text).to eq(expected_text)