在水豚中可以选择多种相同的元素吗

  • 本文关键字:元素 选择 cucumber capybara
  • 更新时间 :
  • 英文 :


我开始研究使用以下宝石capybaracucumberSitePrismwebdriver的自动测试,我在测试中看到的一件事是,如果输入类型字段重复,则会发生很多情况。

一些类似的:

<input type="text" placeholder="some cool text"/>
<input type="text" placeholder="some cool text"/>
<input type="text" placeholder="some cool text"/>

所以我想知道,是否可以同时在所有字段中定义一些值,比如:

site.find('[placeholder="some cool text"]').set('A simple string')

我很难找到答案,一次定义一个循环不会有问题,但我不知道如何同时选择它们。

find仅限于返回一个元素,如果需要多个元素,则需要使用all。使用类似的Capybara

page.all('input', text: 'some cool text').each do |inp| 
inp.set('A simple string')
end

会按照你的要求去做。如果你想确保处理的是正好3个匹配的元素,你可以使用count选项(在"可用选项"之间有also最小值,最大值, and(

page.all('input', text: 'some cool text', count: 3).each do |inp| 
inp.set('A simple string')
end

更新:既然你已经更新了问题,你可以做

page.all("input[placeholder='some cool text']", count: 3).each do |inp| 
inp.set('A simple string')
end

但我可能会使用Capybara提供的选择器类型,如

page.all(:fillable_field, placeholder: 'some cool text', count: 3).each do |inp|
inp.set('A simple string')
end

相关内容

  • 没有找到相关文章

最新更新