Согласно вашим попыткам кода вы не вызывали метод perform()
для Mouse Hover . Вам нужно вызвать WebDriverWait для элементов и использовать следующее решение:
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
//other lines of code
Actions mouseHover = new Actions(driver);
mouseHover.moveToElement(new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOf(ParentElement)))).perform();
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath(subElement))).click();
Обновление
Поскольку вы все еще видите ошибку как:
java.lang.NullPointerException at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:882) at org.openqa.selenium.interactions.Actions.<init>(Actions.java:68)
Это означает, что экземпляр WebDriver , т. Е. Драйвер , недоступен из этой части кода. Возможно, проблема связана с драйвером , который равен null , поскольку вы не расширили класс Base
в классе Test . Убедитесь, что драйвер доступен.
Похожие обсуждения: