如何在 Java 中将 OpenLayers DrawFeature 与 Selenium WebDriver 结合使用(双击问题)?

How to use OpenLayers DrawFeature with Selenium WebDriver in Java (double click issue)?

我正在测试基于 OpenLayers 的 GIS API。我使用 Selenium WebDriver 来执行测试。我现在正在尝试测试 OpenLayers.DrawFeature。绘制点时效果很好,需要单击一下。但对于直线和多边形则不然。

线和多边形绘制需要双击才能完成绘制形状。但是,Selenium WebDriver 中的“doubleClick()”方法似乎不起作用。

因为是工作任务,所以没法贴出全部代码,但我认为这里是关键部分:

driver = new ChromeDriver();
Global.initWithCookies(driver);

// Gets the button to select a shape to draw
WebElement el = driver.findElement(By.id(Menu.idOfDrawModesBtn()));
// Creates an action
Actions act = new Actions(driver);
// Moves the cursor to the element
act.moveToElement(el).perform();
// Gets the button to draw a polygon
driver.findElement(By.id(Menu.idOfDrawModePolygonBtn())).click();
// Gets the map element
el = driver.findElement(By.id(Global.idOfMapDiv()));
// Moves the cursor to the element
act.moveToElement(el).perform();

// First click at the center of the map
act.click().perform();
// Moves to 2nd location
act.moveByOffset(100, 10).perform();
// 2nd click creates the 2nd vertex of the polygon
act.click().perform();
// Moves to 2nd location
act.moveByOffset(200, -200).perform();
/* Double click creates the 3rd vertex of the polygon
    AND should finish the drawing */
act.doubleClick().perform();

driver.close();

如您所见,多边形尚未绘制,因为双击无效:

如果双击有效,它应该是这样的:

我可能找到了解决办法。它有效,但我不明白为什么。

而不是:

act.doubleClick().perform();

我做到了:

act.click().doubleClick().build().perform();

因此,我执行了正常的单击,然后双击,构建了动作,然后执行。

正在运行。我可以画完了