java - 如何使用 WebDriver 移动光标位置

标签 java selenium selenium-webdriver

我正在从事 Liferay 6.2 项目。在 Liferay 中,他们使用了 Vaadin。当我点击一个按钮时,它会打开一个不同的 iframe。我可以编写所有功能的代码。现在我想使用 WebDriver 将光标移动到 iframe 元素。因为当我将鼠标移到 iframe 复选框时,我的自动化脚本就可以运行了。我想自动化脚本以将鼠标指针移动到元素。

我试过下面的代码,但它不起作用。

1) 使用Action moveToElement:

driver.findElement(By.xpath("element1")).click();
new Actions(driver).moveToElement(driver.findElement(By.xpath("element2"))).click().perform();

2) 使用mouseMove

WebElement element = driver.findElement(By.xpath("element xpath"));
Locatable hoverItem = (Locatable) element;
Mouse mouse = ((HasInputDevice) driver).getMouse();
mouse.mouseMove(hoverItem.getCoordinates());

error: getting a error in ((HasInputDevice) driver). HasInputDevice cannot be resolved to a type

3)

Locatable hoverItem = (Locatable) driver.findElement(By.xpath("element xpath"));
int y = hoverItem.getCoordinates().getLocationOnScreen().getY();
((JavascriptExecutor)driver).executeScript("window.scrollBy(0,"+y+");");

error: getting a error in getLocationOnScreen() The method getLocationOnScreen() is undefined for the type Coordinates

4)

Point coordinates = driver.findElement(By.xpath("element xpath")).getLocation();
Robot robot = new Robot();
WebElement markNews = driver.findElement(By.xpath("element xpath"));
markNews.click();
robot.mouseMove(coordinates.x,coordinates.y+80);

这行不通。

我只是想将光标点移动到 iframe 定位器。

最佳答案

您可以使用以下方法直接选择 iframe:

driver.switchTo().frame(driver.findElement(By.id("frameId")));

现在,通过使用 selenium 网络驱动程序,您可以在此 iframe 中执行任何操作。

要返回主窗口,您只需:

driver.switchTo().defaultContent();

关于java - 如何使用 WebDriver 移动光标位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20759348/

相关文章:

java - 如何处理组合框中的超长文本项

java - 从 json : wrong characters 读取日文文本

python - 如何在 python 中为 chrome 的 webdriver 设置代理

java - 给定公共(public)指数和模数的 RSA 签名验证

java - 使用带有 Maps 键集的流时出现 ConcurrentModificationException

firefox - 在 Jenkins 中执行 Selenium HTML 测试套件无法在 Firefox 上启动

ruby-on-rails - 带 Chrome 的 RSpec capybara

selenium - 使用 Selenium Webdriver 测试 ZK 应用程序

c# - 使用 selenium.WebDriver 截屏时出现 System.NullReferenceException

java - 过滤 rgb 图像在 java 中只能工作一次