使用 Watir 按项目编号从下拉列表中选择 select 项?

Use Watir to select item from dropdown list by item number?

有没有办法使用 Watir select 按项目编号从下拉列表中选择项目?也就是说,当使用 SelectList 时,option() 除了 valuetext 之外是否还需要其他任何东西?

我正在尝试 运行 网页上的一个过程,我 select 下拉列表中的第一项,执行操作,转到第二项,再次执行操作等。这个下拉列表有 700 多个选项!

这是 HTML 的样子:

<SELECT NAME="sl" SIZE="1">
    <option value="">&nbsp;</OPTION>
    <option value="abq">Abaza</option>
    <option value="abk">Abkhazian</option>
    ...
    <option value="zun">Zuni</option>
</SELECT>

SelectList 文档建议如下:

b.select_list(:name => 'sl').select_value("abq")

问题是如何移动到下一个值?接下来的 700 个?有没有办法通过项目编号 select ?或者将值提取到数组中,然后循环遍历它们?

谢谢!

如果您想通过除文本或值之外的任何内容 select 选项元素,您可以直接定位并 select 元素。例如,相当于使用select_value方法是:

b.select_list(:name => 'sl').option(value: 'abq').click

您可以使用常用的定位器。要select第二个选项,你可以使用:index定位器(注意它是从0开始的):

b.select_list(:name => 'sl').option(index: 1).click

请注意,如果您想遍历每个选项,使用 Enumerable 方法之一进行循环可能更有意义。这可以消除对索引的担忧。但是,根据您计划采取的其他操作,可能无法正常工作。

b.select_list(:name => 'sl').options.each do |option|
  option.click
  # Do other actions
end