Выбор второго выпадающего значения Watir-Webdriver

Дизайн:

Первый выпадающий список:

<select id="MainContent_drpVehicleType" style="width:175px;" name="ctl00$MainContent$drpVehicleType">
<option value="">- SELECT -</option>
<option value="1" title="AUTO">AUTO</option>
<option value="2" title="HD">HD</option>
<option value="3" title="MARINE">MARINE</option>
</select> 

Второй выпадающий:

<select id="MainContent_drpMake" style="width:175px;" name="ctl00$MainContent$drpVehicleType">
<option value="1" title="ACURA">ACURA</option>
<option value="2" title="ALFA ROMEO">ALFA ROMEO</option>
<option value="74" title="ALLIS CHALMERS LIFT TRUCK">ALLIS CHALMERS LIFT TRUCK</option>
<option value="75" title="ALLIS CHALMERS TRACTOR">ALLIS CHALMERS TRACTOR</option>
<option value="4" title="AMERICAN MOTORS">AMERICAN MOTORS</option
</select>

Код, используемый для исполнения:

b.select_list(:id, "MainContent_drpVehicleType").select("AUTO")

b.select_list(:id, "MainContent_drpMake").select("ACURA")

а также попробовал

`b.select_list(:id, "MainContent_drpMake").wait_until_present.option(:text, 'ACURA')`

** Что моя проблема в состоянии выбрать "АВТО" из первого выпадающего и не может выбрать "ACURA" из второго выпадающего

Ошибка при выполнении:

C:/Ruby193/menu.rb:23:in `<main>': 
C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.6.2/lib/watir-webdriver/el
ements/select.rb:218:in `no_value_found': "ACURA" not found in select list (Wati
r::Exception::NoValueFoundException)
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.6.2/lib/watir
-webdriver/elements/select.rb:152:in `rescue in select_by_string'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.6.2/lib/watir
-webdriver/elements/select.rb:149:in `select_by_string'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.6.2/lib/watir
-webdriver/elements/select.rb:131:in `select_by'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.6.2/lib/watir
-webdriver/elements/select.rb:64:in `select'
        from C:/Ruby193/menu.rb:23:in `<main>'**

1 ответ

Решение

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

Вы можете подождать, пока появится конкретная опция, а затем установить ее, выполнив:

#The option element that you want:
option = b.select_list(:id, "MainContent_drpMake").option(:text => "ACURA")

#Wait for the option to appear
option.wait_until_present

#Set the option
option.select

Или, если вы хотите сделать это в одну строку, вы можете использовать when_present:

b.select_list(:id, "MainContent_drpMake").option(:text => "ACURA").when_present.select
Другие вопросы по тегам