Метод Select () и метод option () работают по-разному - PullRequest
0 голосов
/ 01 сентября 2018

Сегодня я видел вопрос в разделе селена C #, где этот вопрос был опубликован, я пытаюсь решить эту проблему с помощью кодировки WATIR, я написал следующий код, и WATIR идентифицирует этот список выбора как невидимый.

b.goto 'http://automationpractice.com/index.php'
b.img(title: 'Faded Short Sleeve T-shirts').click
b.iframe(xpath: "//*[starts-with(@id,'fancybox-frame')]").select_list.select("L")

Но если я выберу тот же select_list через приведенный ниже код, он будет работать нормально.

b.iframe(xpath: "//*[starts-with(@id,'fancybox-frame')]").select_list.option(text: "L").click

Я не понимаю, в чем здесь разница, когда я помещаю указатель отладки, оба делают вызов селена на find_element(tag_name: "select"), первый отказывает из-за невидимого элемента, а второй проходит

@ Titus, @JustinKo Не могли бы вы объяснить, что здесь происходит? какая разница?

Примечание: пожалуйста, запустите его в Chrome.

1 Ответ

0 голосов
/ 03 сентября 2018

Переход от комментария к ответу:

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

Я исправил это здесь, и он будет работать в Watir 6.13 (должен быть выпущен "скоро")

https://github.com/watir/watir/commit/77af164fcdecb71d8d2240110d3fb4b1dabeee4b

...