Нажать на элемент страницы с помощью Selenium, Page Object и Java
Сайт https://id.yandex.ru/.
Собственно, на странице есть кружок на него кликаю, появляется меню, в котором есть часть меню "Выйти". На неё клик и выходим из аккаунта.
Та веб-часть на которую я хочу нажать:
<div class="MenuItem-Content"><span class="Text">Выйти</span> </div>
Мои попытки В Java-коде:
@FindBy(xpath = "//*[@id=\"root\"]/div/div/div/div/div[6]/a[2]/div[2]/span")
private WebElement element1;
public void userLogout() {
WebDriverWait wait = new WebDriverWait(driver, 5);
WebElement element1 = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//*[@id=\"root\"]/div/div/div/div/div[6]/a[2]/div[2]/span")));
element1.click();
}
Ошибка - at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:221) - первая верхняя красная строка из всех красных строк.
Помогите пожалуйста.
Ответы (1 шт):
Автор решения: Lenny
→ Ссылка
Такое меню называется раскрывающееся меню
Цитата того, кто знал решение:
Потому что весь контент на странице подгружается JS`ом во фрейм, в него нужно переключиться, что бы работать с данными, которые в нём есть:
Решение в моем случае (сниппет):
private WebElement dropMenu;
public void userLogout() {
driver.switchTo().frame(driver.findElement(By.xpath("//*[@id=\"__next\"]/div/header/div/div[2]/div/div/iframe")));
dropMenu = new WebDriverWait(driver, 30).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//span[text()='Выйти']")));
dropMenu.click();
}
Всем добра!