2016-08-10 4 views
-1

Изображение 2 DatePicker:В Watir-WebDriver мне нужно автоматизации код Datepicker

image

У меня есть 2 DatePicker, как показано на скриншоте, мне нужно автоматизировать в Watir-WebDriver.

У них такой же класс, поэтому я не могу выбрать 2 datepicker.

код, который я написал:

("browser.img(:class => "ui-datepicker-trigger").click") 

через это я могу нажать на сборщика 1 день, но как я могу выбрать сборщика 2 даты?

ответ

1

Как минимум, вы можете использовать локатор :index, чтобы выбрать второй выбор даты. Локатор :index определяет, какое из совпадающих элементов использовать. Например, index: 0 выбирает первое совпадение (и является значением по умолчанию). index: 1 выбирает второй матч, и т.д.

выбрать второй элемент выбора даты будет:

browser.img(:class => "ui-datepicker-trigger", :index => 1).click 

Недостатком :index локаторы является то, что они неожиданно сломаться, когда будут добавлены другие подобные элементы. Например, добавление другого выбора даты до даты инструкции приведет к тому, что вышеуказанный код обновит неверный выбор даты. Лучшим подходом было бы найти сборщик дат, относящийся к дате поставки.

Например, HTML может быть как:

<ul> 
    <li> 
    Instruction Date: 
    <input type="text" id="instruction_date"> 
    <img class="ui-datepicker-trigger"> 
    </li> 
    <li> 
    Delivery Due Date: 
    <input type="text" id="delivery_due_date"> 
    <img class="ui-datepicker-trigger"> 
    </li> 
</ul> 

В этой разметке альтернатива ищет второй выбор даты, чтобы посмотреть на выбор даты в том же li как поставки дата поле. Такой подход может быть более надежным для будущих изменений:

browser.text_field(id: 'delivery_due_date').parent.img(class: 'ui-datepicker-trigger').click 
+0

Спасибо за помощь @ Justin Ko !!! –