ruby-on-rails 在水豚'within'块中引用自我

qjp7pelc  于 2023-04-22  发布在  Ruby
关注(0)|答案(2)|浏览(180)

我想对一个Capybara节点及其一个子节点执行操作:

find('#some_parent_node').click
find('#some_parent_node').find('.some_child_node').click

我试着把它们放在一个within块中,如下所示:

within('#some_parent_node') do
  page.click
  page.find('.some_child_node').click
end

但是page.click并不是正确的方法。我如何将像click这样的Capybara方法应用到被称为within参数的节点(即'#some_parent_node')?

b09cbbtk

b09cbbtk1#

如果不测试它,看起来很像块接受一个可选参数,即元素。

within('#some_parent_node') do |element|
  element.click
  find('.some_child_node').click
end
ecbunoof

ecbunoof2#

在一个within块中,你在父节点上操作 * 默认情况下 *,所以不需要在命令前面加上page,下面的命令应该可以工作:

within('#some_parent_node') do
  click
  find('.some_child_node').click
end

docs中还有几个例子。

相关问题