Тестирование 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, которая открывает контекстное меню посредством запуска события.