如何使用Capybara和Selenium访问禁用的选择选项?

时间:2014-08-20 03:10:54

标签: rspec capybara

HTML:

<select id="expiration_month" class="javascript-only form-control input-lg pull-left valid">
</select>
<select id="expiration_month" disabled="" style="width:118px">

  <option selected="" value="01"></option>
  <option value="02"></option>
  ...

由于某种原因,选择被禁用。

我在RSpec中尝试了以下代码:

within 'select#expiration_month'[1] do
  select '01'
end

但得到了这个神秘的错误:

Failure/Error: within 'select#expiration_month'[1] do
 Capybara::ElementNotFound:
   Unable to find css "e"

如何选择选项?

使用Selenium(Firefox)驱动程序。

2 个答案:

答案 0 :(得分:1)

类似的东西:

within '#the id of select' do
  find("option[value='01']").click
end

答案 1 :(得分:1)

'select#expiration_month'String类的实例。

String类有#[]方法。所以'select#expiration_month'[1]e(字符串的第二个字符)。

页面上没有e元素。所以你得到了那个错误。

可能你想这样做:

find("#expiration_month option[value='01']").click