我正在使用许多jQuery插件,这些插件通常创建没有id或其他标识属性的DOM元素,在Capybara中获取它们的唯一方法(例如单击)是首先获取它们的邻居(其祖先的另一个子元素).但我没有找到任何地方,水豚是否支持这样的东西,例如:

find('#some_button').parent.fill_in "Name:", :with => name

?

推荐答案

我真的觉得jamuraa的答案很有用,但在我的例子中, Select 完整的xpath给了我一个字符串的噩梦,所以我很高兴地利用了在Capybara中连接find的能力,允许我混合css和xpath Select .您的示例如下所示:

find('#some_button').find(:xpath,".//..").fill_in "Name:", :with => name

Capybara 2.0 update:find(:xpath,".//..")很可能会导致Ambiguous match错误.在这种情况下,使用first(:xpath,".//..")代替.

Ruby-on-rails相关问答推荐

为什么在使用 Ruby on Rails 时我的徽标没有出现在 Bootstrap 导航栏中?

Rails Migration将字符串转换为整数?

如何在 Windows 中更新 ruby

如何使用 capistrano deploy 定位特定的提交 SHA

Rails Mailer Net::OpenTimeout: execution expired 仅在生产服务器上出现异常

从子类中的重载方法调用基类方法

Rails ActiveRecord 查询日期范围

如何在 rspec 中运行单个测试?

Rails 助手应该假设实例变量存在还是应该将它们作为参数接收?

在 Rails 中将表格行变成链接

如何在 Windows 上为 Ruby 安装 sqlite3?

带有查询字符串参数的 Rails 动作缓存

是否有不涉及删除 Gemfile.lock 的在任何源中找不到 *gem*错误的修复?

如何在 Ruby 中创建一个新的 Date 实例

登录delay_job?

如何打印出范围之间的随机数?

如何强制 RSpec 测试失败?

停止 Rails 为视图和助手生成规范测试?

Rails 3 设计,current_user 在模型中不可访问?

rails路由中资源和资源之间的区别?