Rspec 和瓦蒂尔;使用数组参数作为元素索引

Rspec and Watir; use array param as for an element index

运行 使用 Rspec 进行 GUI 测试。我可以传递一个值数组并将它们用作元素的索引位置吗?

类似于:

def pin_specific_idxs(*idx)
    pins = foo.divs(:class => 'some-element', :index => idx).div(:class, 'another-element').button(:class, 'thingy-i-want-to-click')
    pins.each do |pin|
        pin.click
    end
end

所以在测试中,我会调用 pin_specific_idxs(0,2,3)

这是可行的还是我每次都必须显式调用单个索引值?

你需要做两件事:

  • 迭代传入的索引而不是将整个数组作为参数传递给 :index
  • 使用 :index 定位特定的 div 而不是 divs(即元素集合不支持 :index 定位器)

这看起来像:

def pin_specific_idxs(*idxs)
  idxs.each do |idx|
    foo.div(:class => 'some-element', :index => idx)
       .div(:class, 'another-element')
       .button(:class, 'thingy-i-want-to-click')
       .click
  end
end