Capybara 匹配器用于确定按钮或链接的存在

2024-03-21

网页上的用户不区分“按钮”和“按钮样式的链接”。 有没有办法添加检查页面上是否存在“按钮或链接”?

例如水豚有步骤:

page.should have_button('Click me')

它找不到按钮样式的链接。


更新的答案(应该在 RSpec 3.0+ 中弃用匹配器):

expect(page).to have_selector(:link_or_button, 'Click me')

Before:

page.should have_selector(:link_or_button, 'Click me')

关注自click_link_or_button其定义如下:https://github.com/jnicklas/capybara/blob/master/lib/capybara/node/actions.rb#L12 https://github.com/jnicklas/capybara/blob/master/lib/capybara/node/actions.rb#L12

def click_link_or_button(locator)
  find(:link_or_button, locator).click
end
alias_method :click_on, :click_link_or_button

它调用一个选择器:link_or_button。该选择器在这里定义:https://github.com/jnicklas/capybara/blob/master/lib/capybara/selector.rb#L143 https://github.com/jnicklas/capybara/blob/master/lib/capybara/selector.rb#L143

Capybara.add_selector(:link_or_button) do
  label "link or button"
  xpath { |locator| XPath::HTML.link_or_button(locator) }
end

它调用这个方法:http://rdoc.info/github/jnicklas/xpath/XPath/HTML#link_or_button-instance_method http://rdoc.info/github/jnicklas/xpath/XPath/HTML#link_or_button-instance_method

# File 'lib/xpath/html.rb', line 33

def link_or_button(locator)
  link(locator) + button(locator)
end

所以我尝试检查选择器是否存在并且它有效:

page.should have_selector(:link_or_button, 'Click me')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Capybara 匹配器用于确定按钮或链接的存在 的相关文章

随机推荐

  • 相当于 WinRT 中的可编辑组合框?

    标准 桌面 Windows 组合框具有三种样式 简单 下拉和下拉列表 下拉菜单的工作方式类似于编辑控件和组合框 而下拉列表不允许编辑 我是否遗漏了某些内容 或者 Windows 8 商店应用程序中的 XAML ComboBox 控件仅支持下
  • Cypress 通过 console.log 和命令日志来输出

    是否可以重定向或捕获赛普拉斯浏览器日志和命令日志以输出 我读了一些 Cypress githubissues https github com cypress io cypress issues 448关于这个话题 但我不知道如何让它发挥作
  • 替换宏变量中的字符串?

    我有一个宏 我在其中传递一个参数并使用它根据输入的名称定义一个新变量 define DO X x char do x var x other things 问题是如果我传入一个结构变量 它就会崩溃 DO X some struct gt t
  • 如何从 cdn THREE.js 加载 GLTFLoader

    我在弄清楚如何让 GLTFLoader 在 THREE js 中工作时遇到一些问题 我不明白如何使用 CDN 站点来托管文件 我尝试过使用网络上示例的链接 但这并没有完成我的工作 我在另一篇文章中读到 GLTFLoader 文件必须与我正在
  • 如何在与 Castle Windsor DI 容器相同的上下文中重用瞬态依赖项

    如果我有以下设置 当在同一上下文中创建对象时 如何将容器配置为使用相同的数据库 public class Database public interface IRepository Database Database get public
  • C/Unix 的参数解析助手

    我知道以下情况 尊者getopt 3 扩展的getopt long glibc s argp http www gnu org software libtool manual libc Argp htmlUnix 风格参数向量的解析器 po
  • 在类路径中包含 jar 文件

    我正在从引用一些外部 jar 文件的批处理文件运行 java 程序 我如何在我的批处理文件中包含这些 jar 文件 请帮助 看看Sun的官方文档 设置类路径 http download oracle com javase 6 docs te
  • 确定表/数据库的字符集?

    可以运行什么 T SQL 命令来查找 SQL Server 中表或数据库的字符集 编辑 服务器版本 Microsoft SQL Server 2008 R2 RTM 10 50 1600 1 X64 您可以使用检查版本 SELECT VER
  • 如何获取span标签的值

    如何获取 span 标签的值并将其发送到我的表单中到另一个页面 span span 我需要将我的跨度标记小计的内容发送到另一个页面 我想将其保存到隐藏字段中 但我发现没有办法做到这一点 我用了这个 但没有成功 function getTot
  • 如何在 OpenglES 1.x 中实现阴影(在 iPhone 上)

    如何在我的 OpenglES 1 x 场景中实现阴影 我用谷歌搜索了几个小时 找不到任何有用的东西 我可以找到这个教程 http www paulsprojects net tutorials smt smt html 但没有成功将其移植到
  • 升级到 SDK 2.3.301 后,Service Fabric Actor 或服务随机变得无法访问

    从 Service Fabric SDK 2 0 135 升级到 2 3 301 后 我们开始遇到 Service Fabric actor 或服务无法访问的情况 尽管在 Service Fabric Explorer 中显示为正常运行 一
  • 无法获取 WorksheetFunction 类的 Match 属性

    我想做的是基于 CelloSht Input Cells Rows 7 我想在另一个Sheet的 periodSheet A列中找到匹配项 并根据给定的列获取相应的值 我尝试过结合使用 Index and Match去做这个 这 Index
  • 使用 .NET MVC 控制器操作作为 HTML 的源

    我正在尝试显示与数据库中的用户关联的图片 图片字段的数据类型是image 在页面上 不幸的是下面的代码无法做到这一点 HTML img src User Picture 1 控制器动作 public byte Picture int id
  • 字典理解中的操作顺序

    我遇到了以下有趣的构造 假设您有一个列表列表 如下所示 my list captain1 foo1 bar1 foobar1 captain2 foo2 bar2 foobar2 你想用它们创建一个字典0 index 元素是键 一个方便的方
  • React Native FlatList 列之间的分隔符

    我有一个包含多列的 FlatList
  • 如何使用自定义错误消息使概念失败 (C++20)

    概念非常适合查明代码行的错误 未满足约束条件 然而 我想知道是否可以在那里发布自定义信息消息 static assert 的优点正是这种可能性 用例 任何想要帮助用户弄清楚为什么某个表达式不满足约束的库 这是一个简单的例子 只是为了有一些代
  • 提交搜索时 ENTER 在 IE 中不起作用

    要执行全文搜索 用户只需将查询输入到简单的输入文本中 然后 一旦他们按下 ENTER 键 搜索本身就会开始 目前我们尝试这样解决 inputText 绑定到 sessionScope 变量myQuery 输入还有一个与其绑定的 OpenPa
  • 如何知道 soundpool 何时完成播放音频文件?

    我正在使用 soundpool 来播放我录制的文件 我只是想知道有什么方法可以知道 soundpool 何时完成播放 下面是我的工作代码 public void soundPool final float playbackSpeed 1 5
  • 尝试添加依赖项时出现 websocket 连接错误

    我目前正在尝试在 Electron 软件中使用 React 添加图形部分的图表 除了我添加了与按钮 部分 的交互 以根据用户对其中一个部分 变量 selectedSection 的点击在图表中插入不同的数据 所以我添加了useEffect
  • Capybara 匹配器用于确定按钮或链接的存在

    网页上的用户不区分 按钮 和 按钮样式的链接 有没有办法添加检查页面上是否存在 按钮或链接 例如水豚有步骤 page should have button Click me 它找不到按钮样式的链接 更新的答案 应该在 RSpec 3 0 中