我正在尝试使用capybara(ruby绑定)从下拉列表中选择一个没有id或唯一类的项目,但我似乎无法这样做。
有问题的选择框如下所示:
<select data-bind="options: environments, optionsText: 'name', value: selectedEnvironment, optionsCaption: 'Choose...'" class="form-control">
尝试做:
select("option",:from "#panel > div.panel-body > form > div:nth-child(1) > select")
不起作用,但我可以使用
找到选择字段page.find("#panel > div.panel-body > form > div:nth-child(1) > select")
文档说select方法需要选择框的id,name或label,但肯定必须有一种方法可以从下拉列表中选择比这更具体的东西。除了select()之外我还能使用另一种方法吗?还是我必须回到使用纯硒?
答案 0 :(得分:1)
如果您想要更多地控制您选择的选项,则需要:
find
,all
等)select_option
方法例如,如果您只想选择第一个选项:
option = page.first("#panel > div.panel-body > form > div:nth-child(1) > select option")
option.select_option
或者如果你想选择最后一个:
options = page.all("#panel > div.panel-body > form > div:nth-child(1) > select option")
options[-1].select_option