#webdriver
#webdriver
Вопрос:
У меня есть меню, которое видно только после наведения курсора мыши. Наведение мыши работает, и меню на мгновение становится видимым. Попытка щелчка всегда щелкает по первому пункту в меню. Я хочу дать ему команду щелкнуть любой элемент в списке. В настоящее время я использую идентификатор для поиска.
IWebElement settingsMenu = _driver.FindElement(By.Id("ctl00_ctl00_Main_Header_SettingsMenu"));
var actionbuilder = new Actions(_driver);
actionbuilder.MoveToElement(settingsMenu);
actionbuilder.Perform(); //perform menu hover, this always works
//menu items now visible
IWebElement ScheduleSettings = _driver.FindElement(By.Id("ctl00_ctl00_Main_Header_lnkSchedulingSettings"));
actionbuilder.MoveToElement(ScheduleSettings);
actionbuilder.Perform();
ScheduleSettings.Click();
ScheduleSettings — это второй пункт в меню сверху вниз. Всегда нажимается первый элемент.
Комментарии:
1. Я хочу добавить, что, хотя наведение курсора мыши происходит, оно не сохраняется. При реальном наведении курсора мыши меню остается открытым, пока не произойдет что-то еще. Теперь я замечаю, что иногда вообще не нажимается ни один пункт меню.
2. наведение курсора мыши работает для расширения меню, но оно вообще не работает ни для одного из пунктов меню.
Ответ №1:
используйте это при создании своего драйвера
DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
capabilities.setCapability("enablePersistentHover", false);
driver = new InternetExplorerDriver(capabilities);