如何使用 Selenium 测试 OpenLayers 应用程序?

How to test OpenLayers app with Selenium?

我知道这是老歌,对此我深表歉意。但是我还没有找到解决办法。

我最近尝试使用 Selenium 测试基于 OpenLayers 的应用程序。但是当我点击地图时,它没有检测到 Selenium 中的点击。我已经在整个互联网上搜索过了。有人说这是 Selenium 的错误,其他人则声称已找到解决方法。

我已经尝试了所有这些解决方案,但没有任何结果。点击仍然不起作用。

http://osgeo-org.1560.x6.nabble.com/Testing-with-selenium-IDE-td5015680.html

Selenium IDE testing on maps(Open Layers)

http://comments.gmane.org/gmane.comp.gis.openlayers.user/18125

你能解释一下吗?或者举个例子?

谢谢

PS: 我是 Selenium 的新手,所以理解它可能有点困难。

我不知道这是否是最好的解决方案,但同时我已经开始使用 Selenium WebDriver, more specifically, the Java version

我看过 this video 有关自动化测试的内容,它对走上正确的轨道有很大帮助。该视频显示了一些使用 Selenium WebDriver 的示例(C# 版本,但它类似于 Java 版本)。

我已经安装了 ChromeDriver,但您也可以在 Firefox 中完全安装它。

我使用 JUnit 进行测试。

在 Selenium IDE 中,您 "record" 测试然后重放它们。

在这里,在 Selenium WebDriver 中,您完全编写了测试,没有记录任何内容。

例如,您为以下步骤编写代码:

1) 打开我的 OpenLayers(或其他)应用程序的网页。

WebDriver driver = new FirefoxDriver();
driver.get("http://localhost/myOpenLayersApp/index.php");

2) 单击打开页面 X 的按钮

driver.findElement(By.id("Button-Go-to-page-X")).click();

3) 检查您是否确实导航到页面 X

boolean check = driver.findElement(By.id("Header-X"))
                    .getText()
                    .equals("This is page X.");
Assert.assertTrue(check);

这是一个关于如何使用 Selenium WebDriver 的非常简单的示例。至少,我是这样用的。

如有更多问题,欢迎随时提问。 :)

注意:如果您是新手,请观看视频。这是关于自动化测试的很好的一课。