对于HTML
<select id="date">
<option value="20120904">Tue 4 Sep 2012</option>
<option value="20120905">Wed 5 Sep 2012</option>
<option value="20120906">Thu 6 Sep 2012</option>
</select>
我有以下Capybara Ruby代码:
select "20120905", :from => "date"
但是这个错误是:
cannot select option, no option with text '20120905' in select box 'date' (Capybara::ElementNotFound)
但是,如果我这样做了
select "Wed 5 Sep 2012", :from => "date"
没问题的。
是否可以通过值而不是文本来选择Capybara中的选项
谢谢
发布于 2012-09-11 03:58:52
这将按值选择一个选项:
find("option[value='20120905']").click
要维护选择器的作用域,您可以将其包装在内块中,如下所示:
within '#date' do
find("option[value='20120905']").click
end
发布于 2013-03-12 15:40:50
使用Poltergeist作为驱动程序,我不能单击上面一些其他选项中建议的选项,相反,您可以执行以下操作:
page.find_by_id('date').find("option[value='20120905']").select_option
发布于 2013-04-05 04:39:17
我写了一个helper方法:
def select_by_value(id, value)
option_xpath = "//*[@id='#{id}']/option[@value='#{value}']"
option = find(:xpath, option_xpath).text
select(option, :from => id)
end
保存在spec/support/中的.rb文件中
示例用法:
before do
select_by_value 'some_field_id', 'value'
click_button 'Submit'
end
https://stackoverflow.com/questions/12265174
复制相似问题