水豚: page.should have_no_content 无法正确显示:无元素

发布于 2024-10-27 07:45:10 字数 306 浏览 1 评论 0原文

我想使用 page.should have_no_content 来检查页面是否不向用户显示标签,这里是 HTML 中的内容:

<li id="account_input" style="display: none;">
    <label for="account_name">My Account</label>
    ...
</li>

所以当我使用 page.should have_no_content("My Account") 时,它返回 false 而不是真的。

I would like to use page.should have_no_content to check if the page doesn't display the label to user, here what it is in HTML:

<li id="account_input" style="display: none;">
    <label for="account_name">My Account</label>
    ...
</li>

So when I use page.should have_no_content("My Account"), it returns false instead of true.

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

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

发布评论

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

评论(4

ι不睡觉的鱼゛ 2024-11-03 07:45:10

你可以使用这个声明

find('#account_input').should_not be_visible

You could use this statement

find('#account_input').should_not be_visible
预谋 2024-11-03 07:45:10

我找到了解决方案 使用:

Then /^"([^\"]+)" should not be visible$/ do |text|
  paths = [
    "//*[@class='hidden']/*[contains(.,'#{text}')]",
    "//*[@class='invisible']/*[contains(.,'#{text}')]",
    "//*[@style='display: none;']/*[contains(.,'#{text}')]"
  ]
  xpath = paths.join '|'
  page.should have_xpath(xpath)
end

I found a solution using:

Then /^"([^\"]+)" should not be visible$/ do |text|
  paths = [
    "//*[@class='hidden']/*[contains(.,'#{text}')]",
    "//*[@class='invisible']/*[contains(.,'#{text}')]",
    "//*[@style='display: none;']/*[contains(.,'#{text}')]"
  ]
  xpath = paths.join '|'
  page.should have_xpath(xpath)
end
九命猫 2024-11-03 07:45:10

我找到了另一种方法来实现不应该有

page.should_not(have_content(arg1))

I found another way to implement should not have

page.should_not( have_content(arg1))

千柳 2024-11-03 07:45:10

所以当我使用 page.should have_no_content("My Account") 时,它会返回
假而不是真。

应该是假的。这样想:如果您的页面确实有内容“我的帐户”,那么have_content将返回True,因此have_no_content应该返回False。原因 - 说 HTML 中没有“我的帐户”内容是不正确的。因此,它是假的。

So when I use page.should have_no_content("My Account"), it returns
false instead of true.

It should be false. Think about it this way: if your page does have the content "My account", then have_content would return True, thus have_no_content should return False. And the reason - it is not true to say that the HTML does not have the content "My account" in it. Thus, it is False.

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