Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何通过单击和拖动使用Selenium导航地图_Java_Selenium_Google Maps_Automation - Fatal编程技术网

Java 如何通过单击和拖动使用Selenium导航地图

Java 如何通过单击和拖动使用Selenium导航地图,java,selenium,google-maps,automation,Java,Selenium,Google Maps,Automation,我正在使用Selenium和Java尝试自动化一些google地图导航。我想点击并按住地图,然后移动到某个方向,然后释放光标。这将在页面上移动地图 到目前为止我有 WebElement canvasElement = driver.findElement(map); Actions builder = new Actions(driver.getWebDriver()); builder.moveToElement(canvasElement).clickAndHold().moveByOffs

我正在使用Selenium和Java尝试自动化一些google地图导航。我想点击并按住地图,然后移动到某个方向,然后释放光标。这将在页面上移动地图

到目前为止我有

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();

它仍然不起作用,我相信我以前尝试过这种组合。
build()
已在
perform()
中调用,添加0的偏移量没有任何作用。@Guy现在你让我失望了。没有…偏移量为0。。。同样,但偏移量为
(0,0)
。但是你的评论…没有任何作用。。。最让我吃惊的是。我仍然相信你理解canvas,OP在处理什么。你认为
moveToElement(canvasElement,0,0)
做什么<代码>将鼠标移动到距元素中心的偏移位置。。如果你给
0,0
它不会移动巡洋舰。它还有
返回moveInTicks(target、xOffset、yOffset),在这种情况下与
moveToElement(canvasElement)
完全相同,
返回moveInTicks(目标,0,0)。我尝试过这些变体,但没有成功。我得到的最接近的是我在原始帖子中列出的东西,在那里它单击但不移动或释放地图。你尝试过
dragAndDropBy()
?是的,我尝试过类似
builder.dragAndDrop(canvasElement,driver.findElement(By.className(“asdf”)).perform()的东西
查看它是否可以拖动到页面上其他位置的随机元素,但它也没有做任何操作。我得到的最接近的是我上面提到的,它会在画布/地图上点击并保持,但不会移动