【发布时间】:2019-02-08 14:58:19
【问题描述】:
我是 Selenium 的新手。 我使用gridlastic 作为测试环境。
我已经完成了 selenium 的 Actions 类,它具有移动鼠标的方法,并通过调用 getMouse() 通过 Web 驱动程序获取鼠标实例,并尝试移动鼠标但成功。
@Test(enabled = true)
public void test_site() throws Exception {
Coordinates elementLocation = null;
driver.get("https://www.amazon.com");
Mouse mouse = ((HasInputDevices) driver).getMouse();
System.out.println(mouse.toString());
if(mouse==null) {
System.out.println("mouse is null");
}
WebElement element1=driver.findElementByXPath("//*[@id=\"a-autoid-0-announce\"]");
elementLocation = ((Locatable) element1).getCoordinates();
mouse.mouseMove(elementLocation);
Thread.sleep(5000); //slow down for demo purposes
}
也尝试使用动作类
@Test(enabled = true)
public void test_site() throws Exception {
driver.get("https://www.google.com/ncr");
Actions builder = new Actions(driver);
builder.
moveByOffset( 100, 1 )
.build().perform();
Thread.sleep(10000); //slow down for demo purposes
WebElement element = driver.findElement(By.name("q"));
element.sendKeys("webdriver");
element.submit();
Thread.sleep(5000); //slow down for demo purposes
}
仍然成功,鼠标指针始终保持在位置 (0,0)。任何人都可以帮助如何做到这一点。
请不要建议使用 JAVA 中的 Robot Class,因为测试环境是 gridlastic 并且不适合它。
我也尝试过使用 javascript 执行器,但由于鼠标光标是由操作系统控制的,所以这是不可能的。我想过改变窗口对象 clientX 和 clientY 的值,但根据文档,这些是只读的。
【问题讨论】:
标签: selenium automated-tests selenium-grid