原文: https://javatutorial.net/selenium-java-tutorial

本教程将说明如何使用 Java 运行 Selenium WebDriver

Selenium 是用于测试 Web 应用程序的强大框架。 使用 Selenium,您可以自动浏览,单击和提交网页上的表单。 对网络应用程序进行更改后,最好通过一些手动和自动测试来运行它并验证一切是否正常运行。 本教程将向您展示如何使用 Java 编程语言编写测试脚本。 我假设您已经对 Java 有一定的经验。 如果没有阅读,请先阅读我们的 Java 初学者教程

Selenium Maven 构建

如果您使用 Maven 来构建项目,请在.pom文件中使用以下依赖项

  1. <dependency>
  2. <groupId>org.seleniumhq.selenium</groupId>
  3. <artifactId>selenium-java</artifactId>
  4. <version>2.44.0</version>
  5. </dependency>

Selenium.jar文件

如果您喜欢老式的方法,则必须从 Selenium 网站下载所需的.jar

  1. 转到 Selenium 下载页面

  2. 下载 Java 2.xx zip 文件
    Selenium Java 教程 - 图1

  3. selenium-java-2.44.0.jar和所有 jar 从libs文件夹复制到您的项目中

Selenium 控制台示例

这是一个基本的 Selenium Java 示例。 它使用默认的HtmlUnitDriver以类似控制台的样式提取页面标题。

  1. import org.openqa.selenium.WebDriver;
  2. import org.openqa.selenium.htmlunit.HtmlUnitDriver;
  3. public class SeleniumConsoleExample {
  4. public static void main(String[] args) {
  5. // Create HTML Unit Driver - this is the build in Selenium client
  6. WebDriver driver = new HtmlUnitDriver();
  7. // go to url
  8. driver.get("http://javatutorial.net");
  9. // Check the title of the page
  10. System.out.println("Page title is: " + driver.getTitle());
  11. driver.quit();
  12. }
  13. }

Selenium Firefox 示例

在许多情况下,您将需要 Selenium 与动态创建的元素一起使用。 为此,您将需要一个类似 Firefox 或 Google Chrome 的浏览器窗口。

以下示例需要在默认位置安装 Firefox Web 浏览器。

  1. Selenium 将打开一个单独的 Firefox 窗口并转到 https://javatutorial.net

  2. 查看此页面顶部的搜索按钮(放大镜),是 - 当前正在阅读的页面顶部 🙂 Selenium 将光标移至该位置以显示搜索字段

  3. 它将输入搜索词“java”并提交表格

  4. 等待 5 秒钟,然后关闭浏览器窗口

  1. import org.openqa.selenium.By;
  2. import org.openqa.selenium.WebDriver;
  3. import org.openqa.selenium.WebElement;
  4. import org.openqa.selenium.firefox.FirefoxDriver;
  5. import org.openqa.selenium.interactions.Actions;
  6. import org.openqa.selenium.support.ui.ExpectedConditions;
  7. import org.openqa.selenium.support.ui.WebDriverWait;
  8. public class SeleniumFirefoxExample {
  9. public static void main(String[] args) throws Exception {
  10. // create a Firefox Web Driver
  11. WebDriver driver = new FirefoxDriver();
  12. // open the browser and go to JavaTutorial Network Website
  13. driver.get("https://javatutorial.net");
  14. // find the search button on the page
  15. WebElement searchButton = driver.findElement(By
  16. .className("search-submit"));
  17. // create an action handler
  18. Actions actions = new Actions(driver);
  19. // use the action handler to move the cursor to given element
  20. actions.moveToElement(searchButton).perform();
  21. // wait until the search field is presented on the webpage and create an
  22. // element
  23. WebElement searchField = (new WebDriverWait(driver, 10))
  24. .until(ExpectedConditions.presenceOfElementLocated(By.name("s")));
  25. // puts the text "java" into the search field
  26. searchField.sendKeys("java");
  27. // submit the search (submit the form)
  28. searchField.submit();
  29. // wait 5 seconds and close the browser
  30. Thread.sleep(5000);
  31. driver.quit();
  32. }
  33. }

Selenium Chrome 示例

要使 Selenium 使用 Google Chrome 浏览器,您需要下载并运行独立的 Chrome WebDriver。

1.下载适用于您操作系统的 Chrome Web 驱动程序,该归档文件包含一个可执行文件

2.启动可执行文件 – 它将在端口 9515 上运行本地服务器

3.在您的代码中像这样创建 WebDriver:

  1. URL local = new URL("http://localhost:9515");
  2. WebDriver driver = new RemoteWebDriver(local, DesiredCapabilities.chrome());

这是与上述使用 Chrome 网络驱动程序相同的示例:

  1. import java.net.URL;
  2. import org.openqa.selenium.By;
  3. import org.openqa.selenium.WebDriver;
  4. import org.openqa.selenium.WebElement;
  5. import org.openqa.selenium.interactions.Actions;
  6. import org.openqa.selenium.remote.DesiredCapabilities;
  7. import org.openqa.selenium.remote.RemoteWebDriver;
  8. import org.openqa.selenium.support.ui.ExpectedConditions;
  9. import org.openqa.selenium.support.ui.WebDriverWait;
  10. public class SeleniumChromeExample {
  11. public static void main(String[] args) throws Exception {
  12. // create a Chrome Web Driver
  13. URL local = new URL("http://localhost:9515");
  14. WebDriver driver = new RemoteWebDriver(local, DesiredCapabilities.chrome());
  15. // open the browser and go to JavaTutorial Network Website
  16. driver.get("http://javatutorial.net");
  17. // find the search button on the page
  18. WebElement searchButton = driver.findElement(By
  19. .className("search-submit"));
  20. // create an action handler
  21. Actions actions = new Actions(driver);
  22. // use the action handler to move the cursor to given element
  23. actions.moveToElement(searchButton).perform();
  24. // wait until the search field is presented on the webpage and create an
  25. // element
  26. WebElement searchField = (new WebDriverWait(driver, 10))
  27. .until(ExpectedConditions.presenceOfElementLocated(By.name("s")));
  28. // puts the text "java" into the search field
  29. searchField.sendKeys("java");
  30. // submit the search (submit the form)
  31. searchField.submit();
  32. // wait 5 seconds and close the browser
  33. Thread.sleep(5000);
  34. driver.quit();
  35. }
  36. }