Проблема: Я ищу способ запустить тест, который может устранить неоднозначность между выбранными элементами управления, которые имеют одинаковое значение более чем в одном месте.
Пример:
Я пытаюсь выбрать третий «понедельник» в выбранном элементе управления.
ie.select_list( :id , 'choose-day' ).set( '-monday' );
где элемент управления select имеет своего рода "контурный" формат в самом элементе управления:
alice
-monday
-tuesday
bob
-monday
-tuesday
charlie
-monday
-tuesday
Учитывая, что текст идентичен (и я не знаю, какие значения опций указаны заранее), есть ли способ закодировать тест таким образом, чтобы выбирался понедельник под чарли?





Похоже, вы можете использовать element_by_xpath, чтобы найти нужный вариант, примерно так:
//select/option[text()='charlie']/following::option[text()='-monday']
тогда вы можете проверить атрибут значения этой опции (не знаете, как это сделать в Watir) и выбрать его, используя:
ie.select_list( :id , 'choose-day' ).select_value( whatever_the_value_was );
В WatiN вы можете использовать поддержку нескольких атрибутов для соответствия элементу (я думал, что нечто подобное также доступно в Watir).
Option option = ie.SelectList ("select-day"). Options (Find.ByText ("- monday") && Find.ByIndex (2))
(индекс отсчитывается от нуля, поэтому 2 даст третье совпадение (если есть)).
HTH, Йерун ван Менен Ведущий разработчик WatiN