首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >水豚:根据值而不是文本选择选项

水豚:根据值而不是文本选择选项
EN

Stack Overflow用户
提问于 2012-09-04 22:03:06
回答 8查看 44.9K关注 0票数 66

对于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中的选项

谢谢

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2012-09-11 03:58:52

这将按值选择一个选项:

find("option[value='20120905']").click

要维护选择器的作用域,您可以将其包装在内块中,如下所示:

within '#date' do
  find("option[value='20120905']").click
end
票数 75
EN

Stack Overflow用户

发布于 2013-03-12 15:40:50

使用Poltergeist作为驱动程序,我不能单击上面一些其他选项中建议的选项,相反,您可以执行以下操作:

page.find_by_id('date').find("option[value='20120905']").select_option

票数 39
EN

Stack Overflow用户

发布于 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
票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12265174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档