开始使用 WebDriver 的 Java 绑定很容易——如果您知道如何将各个部分连接在一起。一旦这些部分就位,开发就很容易了。
在本文中,我们将向您展示如何编写并运行一个简单的测试。
您需要的组件
要使用 Eclipse 在 Java 中运行 WebDriver 测试,您需要:
一个测试框架——我们将使用 JUnit;有很多你可以使用。
WebDriver 的 Java 代码库
浏览器驱动程序 - 我们的示例将使用 chrome
依赖管理器——我们的例子是 Maven
有多种方法可以使用 Java 在 Eclipse 中添加依赖项。常见的依赖管理器包括 Maven 和 Gradle。本文的旧版本手动添加了依赖项。
如何安装 Eclipse
Eclipse 是最流行的 Java 开发环境之一。它是一个由 Eclipse 基金会维护的开源项目,拥有大量的附加组件、工具和支持市场。在我们的示例中,我们将选择“Eclipse IDE for Java Developers”。
安装程序会保存到您的本地驱动器或浏览器的“下载”目录。下载并运行它。
安装 Eclipse 后,您可以随意自定义它。
创建项目
Eclipse 使用工作区的概念——您处理项目的文件夹和空间。在这个例子中,我使用了一个现有的工作区,我有几个不同的小示例项目。团队对工作区和项目结构使用不同的方法。在您自己的小型示例项目中使用您喜欢的任何内容;但是,请确保在实际工作中遵循您团队的模式。(工作区和项目结构的争论几乎与制表符与空格一样激烈。请善待。)
本文使用一个简单的Java项目,该项目是通过在打开的屏幕上单击“创建新的Java项目”来创建的。
在 New Java Project 对话框中填写基本信息 - 确保 JRE 环境版本为 14 或更高版本 - 然后单击 Finish 继续。
添加 Maven - 一个依赖管理器
各种驱动程序依赖于其他库,在某些情况下,这些库依赖于其他库。您将使用依赖项注册和管理服务 Maven,而不是手动下载和安装它们。您将为 ChromeDriver 添加一个条目,为 JUnit(“Jupiter”)添加另一个条目,然后开始比赛。所以右键项目,选择configure,转换成maven项目。在随后的“创建新 POM 对话框”上单击完成以创建您的 pom.xml 文件。
添加依赖项
在包浏览器的左下角,您现在将看到一个 pom.xml。我们将在 POM 中添加对 JUnit Jupiter 和 Webdriver 的引用,方法是在 下方和 之前添加依赖关系 xml 片段。这是代码片段(以下表示使用 JUnit 5.7.0 版和 Selenium 4 的环境):
WebDriver 组件的时间
在我们继续之前,快速回顾一下 WebDriver 的构成是有帮助的。WebDriver 由许多不同的组件组成,重要的是您要清楚您需要哪些组件。介绍 WebDriver的Selenium HQ 页面详细介绍了 WebDriver 的工作原理。你应该读一下;但是,这是一个缩写版本:
浏览器驱动程序
WebDriver 的最低级组件是浏览器驱动程序,它通过浏览器的自动化界面直接操作浏览器。这是库将调用的程序。浏览器供应商(Microsoft、Mozilla、Google 等)在他们自己的浏览器中处理细节,这意味着制造浏览器的人也在处理特定浏览器的自动化机制。浏览器驱动程序的名称是ChromeDriver(适用于 Chrome)、Geckodriver(适用于 Firefox)、SafariDriver(适用于 Safari)以及InternetExplorer 驱动程序和MS Edge 驱动程序(分别是IE和Edge)。将它们放在作为环境 PATH 一部分的目录中,这样无论您在哪个工作目录中,对程序的命令行调用都会执行它们。
对于本教程,请为您的环境安装 ChromeDriver
硒服务器
Selenium Server 是一个管理远程机器上运行的 WebDriver 实例的组件。Selenium Server 也是处理网格配置时的中心枢纽。与 Sauce Labs 合作时,Sauce 可以提供整个网格;只需让您的测试隧道进行连接即可。
对于本教程,您将在本地运行测试,因此不需要运行服务器。
将 WebDriver 添加到 Eclipse
如前所述,有多种方法可以在 Eclipse 项目中包含 WebDriver。
我们已经通过将 WebDriver 作为依赖项(selenium-java)添加到 pom.xml 文件中来完成这项工作
编写你的第一个测试
除了与浏览器驱动程序交谈之外,WebDriver 不知道如何做任何事情。因此,您需要某种测试框架来执行测试、进行断言和报告测试状态。我们将使用 JUnit,因为 A) 它非常流行并且 B) 它包含在 Eclipse 的默认安装中。
通过右键单击 => 新建 => JUnit 测试用例,将测试用例添加到 Eclipse 项目。
在结果对话框中为您的测试用例命名一个好名字,然后单击完成以创建文件。请注意,我在这个测试用例中使用了默认命名空间——Eclipse 对此抱怨是理所当然的。再次,善良。遵循您团队的项目组织和命名标准实践。您可能会将文件放在错误的目录中,或者拼写错误。把这种努力重新做几次不是浪费,而是一种很好的做法。
添加 JUnit 和您的第一个测试
右键单击项目,构建路径,添加库,添加 JUnit,然后单击完成 - 从后续对话框中的库版本中选择 JUnit 5,然后单击完成。
右键单击该项目,选择 New,然后选择 New JUnit Jupiter test。确保不要使用默认包(如果需要,请创建一个新包),给它一个好名字,然后单击完成。您会发现您的第一个测试用例已设置好并准备好进行创作。
一个简单的测试
下面是一个完整的测试用例,它在本地启动浏览器,执行一个非常简单的测试,然后关闭浏览器实例。该示例非常简单,并且不遵循使用页面对象模式等常规做法。这是示例代码,不是生产代码!
您会注意到测试用例需要将该属性设置为 Chromedriver 文件所在的位置;你需要改变这一点。在 Windows 中,这将类似于“c:\somedirectory\chromedriver.exe”,对于 Linux 和 Mac shell,您不需要尾随 .exe,您将直接指向二进制文件。
package org.seleniumhq.selenium.selenium_java; import static org.JUnit.jupiter.api.Assertions.*; import org.JUnit.jupiter.api.Test; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver;
class SauceLabsHomePageTest { @Test public void site_header_is_on_home_page() { System.setProperty("webdriver.chrome.driver", "/where/you/put/chromedriver"); WebDriver browser = new ChromeDriver(); browser.get("https://www.saucelabs.com"); WebElement href = browser.findElement(By.xpath("//a[@href='https://accounts.saucelabs.com/']")); assertTrue((href.isDisplayed())); browser.close();
} }
通过右键单击测试主体并选择 Run As => JUnit test 来运行测试。
下面推荐两个不错的测试平台
众测平台:众测平台-众测服务-Alltesting众测
自动化测试平台:Alltesting|泽众云测试-真机-兼容性-性能-众测-安全-测试平台