Capybara / Selenium / Chrome не может изменить значение выпадающего списка - PullRequest
1 голос
/ 29 августа 2011

Когда я запускаю свой тест с функциями, шагами и HTML ниже, тест выполняется без ошибок (до тех пор, пока он не завершится ошибкой на этапах утверждения), но я вижу, что в выпадающих списках не происходит никаких изменений.Что я делаю не так?

HTML:

<div class='field'> 
  <label for="verification_value">Verification Number</label> 
  <input id="verification_value" type="text" /> 
</div> 
<div class='field'> 
  <label for="month">Month</label> 
  <select id="month"> 
    <option value="1">1 - January</option> 
    <option value="2">2 - February</option> 
    <option value="3">3 - March</option> 
    <option value="4">4 - April</option> 
    <option value="5">5 - May</option> 
    <option value="6">6 - June</option> 
    <option value="7">7 - July</option> 
    <option value="8">8 - August</option> 
    <option value="9">9 - September</option> 
    <option value="10">10 - October</option> 
    <option value="11">11 - November</option> 
    <option value="12">12 - December</option> 
  </select> 
 </div>

шаг:

When /^(?:|I )select "([^"]*)" from "([^"]*)"$/ do |value, field|
  select(value, :from => field)
end

функция:

Feature: In order for this to work, a select menu should be changeable

    @javascript
    Scenario: A user follows the steps to successfully do fun stuff
        Given I go to a  page
        And I fill in "verification_value" with "12345"
        And I select "2 - February" from  "month"
        Then I should see "everything worked" within "body"

And I select "2" from "month" не делает 'на самом деле не выдает никаких ошибок, это просто не меняет опцию выбора.Он должен установить для выбора значение 2 - February

Я также попробовал его с драйвером Firefox, и я получил тот же результат

Обновление

Относительно регулярного выражения я добавилputs строка, и она действительно была запущена

When /^(?:|I )select "([^"]*)" from "([^"]*)"$/ do |value, field|
  puts "STEP MATCHED"   # << it did put "STEP MATCHED"
  select(value, :from => field)
end

Я скопировал это из значения по умолчанию web_steps.rb, поэтому я удивлен, что это не работает для некоторых людей, но работает нормально для меня.

Ответы [ 2 ]

1 голос
/ 29 августа 2011

Похоже, у вас есть лишняя двойная кавычка в теге SELECT. Это может быть причиной проблемы.

0 голосов
/ 10 сентября 2011

Я не пробовал ваш код, и сейчас у меня нет времени, но вы можете попробовать проверить это регулярное выражение.Если вы пытаетесь не требовать «I» в этом определении шага, я бы порекомендовал сделать следующее:

When /^(?:I )?select "([^"]*)" from "([^"]*)"$/ do |value, field|
  select(value, :from => field)
end

Знак вопроса после группы захвата (обозначается скобками) означает, что содержимоеиз группы захвата не является обязательным.Это может помочь определить шаг, если в предыдущем ответе указано, почему он не работает.

...