Как Watir может постоянно работать с выпадающим меню javascript?

Я n00b для watir, и я тестирую веб-приложение, которое использует extjs. Приложение имеет главное меню с несколькими пунктами, у которых есть подпункты. Один из пунктов главного меню имеет тот же текст, что и одно из его подменю. В watir webdriver у меня есть этот код:

jobs_menu = d.p(:text => "Jobs")
jobs_menu.when_present.flash
jobs_menu.click
jobs_submenu_item = d.a(:text => "Jobs")
jobs_submenu_item.when_present.flash
jobs_submenu_item.click

Это должно мигать и щелкнуть первое меню и вызвать падение подменю. Затем он должен мигать и щелкнуть пункт подменю. Я получаю 3 результата в 3 разных браузерах:

Firefox - 1-е меню мигает и падает, элемент подменю мигает, но не нажимается

Chrome — 1-е меню мигает и падает, пункт подменю мигает и нажимает «ОК» — ура!

IE - 1-е меню мигает и падает, затем оно исчезает, и элемент подменю не может быть найден с помощью ElementNotVisibleError

Интересно отметить другое меню, в котором выпадающий текст отличается от текста подменю, тогда Firefox и Chrome работают нормально. IE по-прежнему выдает ElementNotVisibleError.

Как я могу заставить это работать одинаково во всех трех браузерах?


person ibodog    schedule 03.04.2012    source источник
comment
У вас есть образец страницы, с которым мы можем протестировать (т. е. чтобы мы могли воспроизвести проблему и попробовать разные решения)?   -  person Justin Ko    schedule 04.04.2012
comment
Посетите веб-сайт extjs и их демонстрационные страницы и посмотрите, сможете ли вы найти пример элемента управления, который совпадает с тем, который вы используете.   -  person Chuck van der Linden    schedule 04.04.2012


Ответы (1)


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

Проблема со многими этими пользовательскими элементами управления заключается в том, что они работают по-разному в разных браузерах, а это означает, что ваш код автоматизации МОЖЕТ учитывать это, это недостаток таких пользовательских элементов управления, как этот, и отсутствие использования основных элементов HTML.

person Chuck van der Linden    schedule 03.04.2012
comment
Извините, у меня нет веб-страницы, и образцы элементов управления на веб-сайте extjs не выглядят так, как будто они соответствуют меню этого приложения. Я пытался опубликовать снимок экрана этого раздела, как показано в firebug, но я слишком большой здесь n00b, чтобы мне разрешили загрузить графический файл. .hover не сработал, потому что меню исчезает, когда он продолжает пытаться .click на элементе подменю. Предоставляет ли Watir более прямой доступ к расширенному интерфейсу взаимодействия с пользователем webdriver? Может быть, я мог бы связать два щелчка таким образом? - person ibodog; 05.04.2012
comment
Опубликовал это в группе Google Watir. Короткий ответ — использовать объект Watir Browser для доступа к Selenium WebDriver и использовать Selenium Action Builder для создания команды в два клика. - person ibodog; 26.04.2012
comment
@ibodog, не могли бы вы дать ответ со ссылкой на ветку в группах Google и резюмировать ее здесь? Я не могу найти его. - person echristopherson; 19.10.2014