gpt4 book ai didi

ruby - 如何在选择列表中选择特定选项?

转载 作者:数据小太阳 更新时间:2023-10-29 08:43:30 24 4
gpt4 key购买 nike

我正在尝试选择选项 2,但首先是选择 2,然后更改为 1。

这是选择列表的 HTML:

<select id="IDITForm@additionalVehicleDrivers|1@youngestDriverExperienceVO@id">
<option style="background-color: rgb(252, 218, 175);" value="-1">Select</option>
<option value="1">0</option>
<option value="2">1</option>
<option value="3">2</option>
<option value="4">3</option>
<option value="5">4</option>
<option value="1000000">5</option>
<option value="1000001">more than 5</option>
</select>

这是选择 2 的 Watir 代码:

b.select_list(:id,"IDITForm@additionalVehicleDrivers|1@youngestDriverExperienceVO@id").select "2"

最佳答案

问题是您使用的是 Watir-Classic 的 select方法的参数匹配一个选项的文本以及另一个选项的值。

如果你看一下 code for the Watir::SelectList#select method :

def select(item)
matching_options = []
perform_action do
matching_options = matching_items_in_select_list(:text, item) +
matching_items_in_select_list(:label, item) +
matching_items_in_select_list(:value, item)
raise NoValueFoundException, "No option with :text, :label or :value of #{item.inspect} in this select element" if matching_options.empty?
matching_options.each(&:select)
end
first_present_option_value matching_options, :text
end

你可以看到:

  1. 它获取基于文本、标签和值的匹配选项列表
  2. 然后 Watir-Classic 会为每个匹配选项选择它。

对于你的具体例子,这意味着

  1. 2 个选项匹配输入“2”:
    • <option value="2">1</option>value 以来匹配是“2”
    • <option value="3">2</option>text 以来匹配是“2”
  2. Watir-Classic 正在按特定顺序选择这些选项中的每一个,这就是为什么您会看到下拉列表切换到“1”然后切换到“2”的原因

考虑到方法的编写方式和选择列表的编写方式,您不能使用 select方法。虽然最好的选择是迁移到 Watir(以前称为 Watir-Webdriver),但 Watir-Classic 中有一些解决方法。

通过专门选择仅基于 value 的选项来消除歧义属性:

id = "IDITForm@additionalVehicleDrivers|1@youngestDriverExperienceVO@id"
b.select_list(:id, id).select_value "3"
#=> will select <option value="3">2</option>

如果你想坚持按文本选择,直接定位/选择选项元素:

id = "IDITForm@additionalVehicleDrivers|1@youngestDriverExperienceVO@id"
b.select_list(:id, id).option(:text, "2").select
#=> will select <option value="3">2</option>

关于ruby - 如何在选择列表中选择特定选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40921612/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com