对于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>
Run Code Online (Sandbox Code Playgroud)
我有以下Capybara Ruby代码:
select "20120905", :from => "date"
Run Code Online (Sandbox Code Playgroud)
但是这个错误有:
cannot select option, no option with text '20120905' in select box 'date' (Capybara::ElementNotFound)
Run Code Online (Sandbox Code Playgroud)
但是,如果我这样做
select "Wed 5 Sep 2012", :from => "date"
Run Code Online (Sandbox Code Playgroud)
没关系.
是否可以通过Value not Text选择Capybara中的选项?
谢谢
rob*_*son 72
这将按值选择一个选项:
find("option[value='20120905']").click
Run Code Online (Sandbox Code Playgroud)
要维护选择器的范围,可以将其包装在内部块中,如下所示:
within '#date' do
find("option[value='20120905']").click
end
Run Code Online (Sandbox Code Playgroud)
小智 39
使用Poltergeist作为驱动程序,我无法单击上面某些其他选项中建议的选项,而是可以执行以下操作:
page.find_by_id('date').find("option[value='20120905']").select_option
d_r*_*ail 20
我写了一个帮助方法:
def select_by_value(id, value)
option_xpath = "//*[@id='#{id}']/option[@value='#{value}']"
option = find(:xpath, option_xpath).text
select(option, :from => id)
end
Run Code Online (Sandbox Code Playgroud)
保存在spec/support /中的.rb文件中
使用示例:
before do
select_by_value 'some_field_id', 'value'
click_button 'Submit'
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40423 次 |
| 最近记录: |