Тестирование Javascript с использованием Selenium

Я пытаюсь протестировать сайт. Я могу получить доступ к большинству веб-элементов, кроме пунктов меню.

В основном есть выпадающее меню, мне удалось щелкнуть по меню с помощью Selenium, открыв таким образом выпадающее меню. Теперь мне нужно нажать на элемент в меню, но меню, кажется, написано на Javascript, а не как веб-элементы, поэтому я не могу найти способ доступа к пунктам меню.

Есть идеи? Я специально должен сделать это в Selenium.

ОБНОВИТЬ: -------------------------------------------------------------------------------------- Меню на веб-сайте может быть контекстным меню. Открывается с помощью левого клика. Любые идеи, как я могу получить доступ к его параметрам?

4 ответа

Решение

Мне не удалось получить доступ к пунктам меню с помощью Selenium, кроме как щелкнуть меню и прокрутить элементы с помощью стрелок вверх и вниз по селену.

Я использовал OpenScript для записи / воспроизведения теста, и он сработал. В моем конкретном случае веб-сайт, который я использовал, требовал установки флага, чтобы сделать его тестируемым. Если вы столкнулись с проблемами при тестировании веб-сайта, вам может потребоваться связаться с разработчиками и спросить, был ли установлен флаг "автоматизации".

 WebElement dropDownListBox = driver.findElement(By.id("Menu_id")); 
                  Select clickThis = new Select(dropDownListBox);                
                  clickThis.selectByVisibleText(activity); //If you know visible text
                //clickThis.getFirstSelectedOption();  // This will auto select first option in the drop down                
               // clickThis.selectByValue(1); //if you the value of drop down list items

Меню может быть сконструировано и обработано с помощью javascript страницы, но оно будет существовать как html. Вы можете взаимодействовать с этим HTML, используя Selenium.

Открыть контекстное меню не так просто. До сих пор я запускаю событие мыши посредством выполнения javascript (не нашел другого решения). Это похоже на это обсуждение: триггер правой кнопкой мыши или Selenium 2 правой кнопкой мыши

Иногда это полезно, если вы просто запускаете базовую js-функцию. В большинстве случаев разработчик может предоставить вам одну точку входа для вызова. Это даст вам возможность продолжать строить свои тесты, и через некоторое время вы реализовали функцию javascript, которая открывает контекстное меню посредством запуска события.

Другие вопросы по тегам