/ / збирати всі результати xpath в масив у рубіні - ruby, теги, автоматизація, watir

зібрати всі результати xpath до масиву ruby ​​- ruby, tags, automation, watir

У мене дуже погано закодований JSP, який я намагаюсязапустити автоматизацію на. Існує серія прапорців з іменами (без ідентифікаторів) "delete [x]", де X - номер пункту заповненого елемента. Я намагаюся встановити всі прапорці, щоб я могла видалити кожен запис. Ось що я маю

check_boxes = []
check_boxes.push(@browser.checkbox(:xpath, "//input[contains(@name,"delete")]"))
puts check_boxes.size

check_boxes.each do |check_box|
check_box.set

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

Я знаю, що є тег "як", який отримує набір якорів, і мені було цікаво, чи існує такий спосіб, як взяти весь вибір прапорців

Відповіді:

3 для відповіді № 1

Я не думаю, що проблема полягає в самій xpath. Це @browser.checkbox це викликає повернення лише першого прапорця.

Якщо ви хочете, щоб усі відповідні прапорці, слід використовувати (помітити множину):

@browser.checkboxes

Зауважте, що checkboxes повертає колекцію прапорців. Якщо ви робите щось по-справжньому фантазійне, вам зазвичай не потрібно перетворювати його в масив.

Ви можете просто зробити:

@browser.checkboxes(:name => /delete/).each do |checkbox|
checkbox.set
end