Selenium Java Webdriver 3:moveToElement不起作用。
WebElement element = ...
Actions actions = new Actions(driver);
actions.moveToElement(element).build().perform();
尝试添加click()
WebElement element = ...
Actions actions = new Actions(driver);
actions.moveToElement(element).click().build().perform();
不起作用。鼠标没有移动。
答案 0 :(得分:0)
跳过build()
部分,perform()
始终在下面进行。
答案 1 :(得分:0)
WebElement abcd = ..........
Actions actions = new Actions(driver);
actions.moveToElement(abcd).perform();
上面的代码可以使用,但是请在您的计算机上检查chrome.exe版本和正在使用的chrome版本。两者应该彼此兼容。检查以下链接的兼容性。
答案 2 :(得分:0)
Movie movie = Json.fromJson(jsonNode, Movie.class);
if(movies.stream().noneMatch(m -> m.getMovieName().equals(movie.getName()))) {
movies.add(movie);
return ok(Json.toJson(movie));
} else {
// Movie name already exists... Throw exception here
return badRequest("Movie already exists");
}
这将起作用。首先检查您的“查找元素”方法是正确还是错误。请同时发布此步骤。否则您的代码是正确的。
答案 3 :(得分:0)
尝试通过xpath而不是链接文本查找元素。它对我有用。
WebElement element = driver.findElement(By.xpath("..."));
Actions actions = new Actions(driver);
actions.moveToElement(element).build().perform();
答案 4 :(得分:0)
尝试以下代码
public static void mouse_movement(WebDriver driver, String xpathExpression) {
Actions act = new Actions(driver);
WebElement target = driver.findElement(By.xpath(xpathExpression));
act.moveToElement(target).build().perform();
}
答案 5 :(得分:0)
如果您需要单击该元素,则可以尝试使用javascript:
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", driver.findElement(By.xpath(xPath)));
答案 6 :(得分:0)
我已经解决了这个问题:
const element = await driver.findElement(...)
await driver.executeScript("arguments[0].scrollIntoView(true);", element)
await driver.sleep(500);