ruby - Capybara - 覆盖节点上的属性

标签 ruby capybara

假设我成功获取了一些 Capybara 节点:

node = find("#some-element")

该元素有一些讨厌的属性,我只想忽略或覆盖给定测试的上下文:

node[:onClick] # "someInlineJSCrap(); return false;"

是否可以覆盖 Capybara 节点上的属性?我试过 ruby​​ 哈希赋值语法,但没有成功;

node[:onClick] = "return true;"

编辑(完整错误):

undefined method `[]=' for # <Capybara::Element tag="a"> (NoMethodError)

如有任何帮助,我们将不胜感激!

最佳答案

我不知道这是否可行,但我想我有适合您的解决方法。

您可以使用 page.execute_script 通过 JavaScript 更改节点的 onClick 值。

这将类似于 page.execute_script("$('#some-element').attr('onClick', 'return true;')")

关于ruby - Capybara - 覆盖节点上的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17562382/

相关文章:

Ruby 初学者试图从 Ruby 中的另一个类调用方法?

ruby - 无法从 macOS Catalina 10.15.1 卸载旧版本的 gem

Ruby 元类 : why three when defined singleton methods?

ruby - capybara ::dsl::模块的未定义方法 'delegate'

ruby-on-rails - Rails 功能测试未运行

ruby-on-rails - 测试使用 ActionMailer 发送的 PDF 内容

ruby - Watir 网络驱动程序需要太长时间才能从下拉列表中获取所选项目

ruby-on-rails - 无法执行 Rails 控制台命令 Ruby

ruby - 如何使用 capybara 单击项目列表中的一项

ruby-on-rails - 在 Rails 3 中使用 Cucumber/Capybara 测试 jQuery 标记自动完成