我正在使用Selenium和Java来尝试自动化一些谷歌地图导航。我想点击并按住地图,然后移动到某个方向,然后释放光标。这样可以在页面上移动地图。
到目前为止,我有
WebElement canvasElement = driver.findElement(map);
Actions builder = new Actions(driver.getWebDriver());
builder.moveToElement(canvasElement).clickAndHold().moveByOffset(300, 0).release().perform();
但是,页面上没有任何移动。我知道我选择的地图是正确的,因为如果我只是做
builder.moveToElement(canvasElement).clickAndHold().moveByOffset(300, 0).perform();
然后,当我用鼠标在地图上移动时,地图会移动,而无需单击鼠标左键,因为它仍处于点击并保持状态,从未释放。不确定moveByOffset为什么不适用于这种特殊情况。任何建议都将是伟大的
要点击并按住地图,然后移动到某个方向,然后释放光标,即创建动作链的光标,还需要调用build()
方法,可以使用以下解决方案:
WebElement canvasElement = driver.findElement(map);
new Actions(driver).moveToElement(canvasElement, 0, 0).clickAndHold().moveByOffset(300, 0).release().build().perform();