Selenium webdriver ruby​​ assertTextPresent相当于

时间:2011-08-03 16:32:27

标签: ruby selenium webdriver

我无法弄清楚seleniums webdriver的assertTextPresent等价物是什么。我找到了几个java的答案,但没有找到ruby。有没有人有任何想法?

3 个答案:

答案 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

  

https://github.com/rspec/rspec-expectations

这是真正全面的断言"库"。

在这种情况下,您可以使用以下匹配器:

  

expect(actual_text).to eq(expected_text)