Я хочу использовать функцию наведения указателя мыши на раскрывающееся меню. Когда мы наводим курсор на меню, оно показывает новые параметры. Я попытался щелкнуть новые параметры с помощью xpath. Но нельзя щелкать меню напрямую. Итак, в качестве ручного способа я пытаюсь навести указатель мыши на раскрывающееся меню, а затем щелкнуть новые параметры.
Actions action = new Actions(webdriver);
WebElement we = webdriver.findElement(By.xpath("//html/body/div[13]/ul/li[4]/a"));
action.moveToElement(we).build().perform();
java
selenium
selenium-webdriver
mouseover
Прадип SJ
источник
источник
Ответы:
На самом деле невозможно выполнить действие «наведения мыши», вместо этого вам нужно связать все действия, которые вы хотите выполнить, за один раз. Итак, перейдите к элементу, который открывает другие, затем в той же цепочке перейдите к открытому элементу и щелкните по нему.
При использовании Action Chains вы должны помнить, что «делайте это как пользователь».
источник
webdriver.findElement(By... something)
выполняются раньше всего (это единственный способ передать их результатmoveElement
). В это время второй элемент, который вы хотите найти, еще не виден, потому что над первым все еще нужно навести курсор мыши. Чтобы исправить это, как вы сказали, вы можете вставить промежуточные.perform()
s. Затем для второгоfindElement
будет изменено первое наведениеperform
. Данное решение может работать в зависимости от реализации страницы, но, видимо, ваш и мой опыт разнятся.Ни один из этих ответов не работает, когда вы пытаетесь сделать следующее:
Если вы вставите команду «выполнить» после moveToElement, она переместится к элементу, и элемент подменю отобразится на короткое время, но это не наведение курсора. Скрытый элемент немедленно исчезает, прежде чем его можно будет найти, что приведет к исключению ElementNotFoundException. Я пробовал две вещи:
Это не сработало для меня. У меня сработало следующее:
Используя Действия для наведения и стандартный щелчок WebDriver, я мог навести курсор и затем щелкнуть.
источник
Основываясь на этом сообщении в блоге, я смог запустить зависание, используя следующий код с Selenium 2 Webdriver:
источник
moveToElement
, воспользуйтесь этим! Я кодирую на C #, так что это не только для Java.Example
arguments[0]
?executeScript()
, который являетсяwebElement
Этот код отлично работает:
После наведения указателя мыши вы можете перейти к следующему действию, которое вы хотите, над раскрытой информацией.
источник
using OpenQA.Selenium.Interactions;
Посмотрите на этот пример, как мы могли бы это реализовать.
Подробный ответ можно найти здесь - http://www.testautomationguru.com/selenium-webdriver-automating-hoverable-multilevel-dropdowns/
источник
Я нашел этот вопрос в поисках способа сделать то же самое для моих тестов Javascript, используя Protractor (интерфейс javascript для Selenium).
Мое решение с транспортиром 1.2.0 и webdriver 2.1:
Это также принимает смещение (я использую его, чтобы щелкнуть сверху и слева от элемента :)
источник
Пример программы для наведения курсора мыши с использованием Selenium java WebDriver:
источник
Можешь попробовать:
Если у вас был случай, когда в сети много категорий, используйте первый метод. Для меню, которое вы хотите, вам просто нужен второй способ.
источник