Нужно кликнуть на кнопку , которая отображается при выпадании списка меню
Прописывал путь уже черз xpath ,css , id, всеравно выпадает ошибка element not visible
Есть подозрения что нужно использовать executor но как его применить я не разобрался
Можете помочь пожалуйста
а другие локаторы что говорят?
https://chrome.google.com/webstore/detail/test-recorder-css-selecto/cajiblmjgnmllbkmlgcnkhafngdjfoci?utm_source=chrome-app-launcher-info-dialog
пробуйте, так же нужно ожидание на появление элемента (кстати в первую очередь)
нельзя просто так взять и кликнуть по инвизибл элементу . для начала вам нужно сделать его видимым. например сымитировав клик по меню чтобы вывалился его список.
Если клик на “О Выставке” ведет на какую то страницу, то тогда нужно иммитировать mouseHover и тогда уже кликать по нужной вам ссылке. Если же никуда не ведет, то нужно сделать клик сначала на “О Выставке”, можно дополнительно проверить что следующая ссылка в меню видна и потом уже на нее кликать.
О , ожидание есть . Я в основном тесте поставил на время вонючий thread.sleep между кликами
РЕБЯТА, вообщем я нашел решение , радуюсь как дурачок :
Actions builder = new Actions(driver);
builder.moveToElement(about).perform();
clickOnElement(place);
Но всеже я хочу узнать как использовать Javascriptexecutor
Напишите плиз кто шарит доступным языком
Доступнее некуда
Стандартный moveToElement из Actions не всегда подходит.
Бывает, что при движении мыши задеваются другие пункты меню и нужное подменю исчезает.
Для решения этой проблемы можно эмулировать MouseEvents для элемента.
private WebElement mouseOver(WebElement element) {
String code = "var fireOnThis = arguments[0];"
+ "var evObj = document.createEvent('MouseEvents');"
+ "evObj.initEvent( 'mouseover', true, true );"
+ "fireOnThis.dispatchEvent(evObj);";
executeJavaScript(code, element);
return element;
}