Selenium webdriver ruby​​ assertTextPresent 等效项

发布于 2024-11-27 21:00:47 字数 100 浏览 0 评论 0原文

我无法弄清楚 seleniums webdriver 的assertTextPresent 等效项是什么。我找到了几个关于java的答案,但没有找到关于ruby的答案。有人有什么想法吗?

I cannot figure out what the assertTextPresent equivalent for seleniums webdriver is. I found several answers for java, but none for ruby. Does anybody have any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

佞臣 2024-12-04 21:00:47

文本断言不是 WebDriver 的一部分,但您可以这样做:

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

Text assertions are not part of WebDriver, but you can do:

assert driver.find_element(:tag_name, "body").text.include?(str)
凉月流沐 2024-12-04 21:00:47

selenium-webdriver 没有内置的断言库,您需要额外的一个来满足您的断言需求。

现在谈到 ruby​​ 语言,那么最好的方法是使用 rspec。

你如何使用它:
1) 安装 rspec 将其放入 Gemfile 中并进行捆绑安装
2) 在你的框架中需要“rspec”
3) 使用 rspec-expectations
<代码>
期望(实际文本)。包含(预期文本)

这是完整的单个脚本示例

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 匹配器 (expect(driver.find_element(:tag_name=>'body').text).to include(expected_text)

希望有帮助!!

selenium-webdriver does not come with an inbuilt assertion library, you need to have an additional one to cater to you assertion needs.

Now coming to language which is ruby then the best one would be to use rspec.

How do you use that :
1) Install rspec of put it in your Gemfile and do a bundle install
2) require 'rspec' in your framework
3) use rspec-expectations

expect(actual-text).to include(expected-text)

Here is full single script example

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")

Additionally you can define this method def assert_text_present in a utility or a helper file of your framework and use it repeatedly when required.

Note: If you put this method in a framework, you can use the include matcher directly (expect(driver.find_element(:tag_name=>'body').text).to include(expected_text))

Hope it helps!!

深海夜未眠 2024-12-04 21:00:47

我推荐 rspec-expectations

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

这是一个真正全面的断言“库” .

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

expect(actual_text).to eq(expected_text)

I recommend rspec-expectations

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

It is realy comprehensive assertion "library".

In this case you could use following matcher:

expect(actual_text).to eq(expected_text)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文