9E WebDriver – 用于启动其他浏览器的代码示例

原文: https://javabeginnerstutorial.com/selenium/9e-webdriver-code-launching-browsers/

如果您只能使用 Selenium(即 Firefox)在一个浏览器中自动化测试,但您的 Web 应用也支持 Chrome 和 IE,该怎么办? 这意味着所有三个浏览器都需要测试! 如果是这种情况,那么 Selenium 就像把头埋在沙子里一样有用。

哦,不要惊慌! 我们的统治冠军 WebDriver 在这里为我们提供帮助。 这是我们今天的主题。 让我们潜入吧!

第 1 步:首先! 让我们下载所需的可执行文件。 转到“www.seleniumhq.org/download”。

  • InternetExplorerDriver在“Internet Explorer 驱动程序服务器”部分下可用。
  • ChromeDriverOperaDriverSafariDriver位于“第三方浏览器驱动程序”部分下。

在本文中,我们将仅讨论InternetExplorerDriverChromeDriver。 设置其他浏览器也应遵循类似的步骤。

Browser download

步骤 2:下载可执行文件后,解压缩并将它们保存在所需的路径中。 我在 Eclipse IDE 的项目中创建了一个名为“浏览器驱动程序”的文件夹(右键单击“包 -> 新建 -> 文件夹”),并复制了下载的文件以便于访问。

步骤 3:现在,让我们通过右键单击“包-> 新建 -> 类”并将它们命名为“HelloWorld_IE.java”,创建两个新类。 和“HelloWorld_Chrome.java”。

包浏览器窗格现在如下所示,

Eclipse window

让我们考虑一个非常简单的情况,因为我们的主要目标是查看是否可以启动 IE 和 Chrome 浏览器,

  1. 根据测试用例打开 IE / Chrome 浏览器。
  2. 导航到“https://www.google.com/
  3. 在控制台中显示“Hello World消息。
  4. 关闭浏览器。

首先让我们看看“HelloWorld_IE.java”类的代码

  1. package com.blog.tests;
  2. import org.openqa.selenium.WebDriver;
  3. import org.openqa.selenium.ie.InternetExplorerDriver;
  4. public class HelloWorld_IE {
  5. public static void main(String[] args){
  6. //System property set up
  7. System.setProperty("webdriver.ie.driver", "browser- drivers\\IEDriverServer.exe");
  8. //Create a new instance for the class InternetExplorerDriver
  9. //that implements WebDriver interface
  10. WebDriver driver = new InternetExplorerDriver();
  11. //Assign the URL to be invoked to a String variable
  12. String baseUrl = "https://www.google.com";
  13. //Open baseUrl in IE browser window
  14. driver.get(baseUrl);
  15. //Print the message to console
  16. System.out.println("Hello World!");
  17. //Close the IE browser
  18. driver.quit();
  19. }
  20. }

如果注意到的话,此代码与我们在上一篇文章“第一个测试脚本 – 通过启动 Firefox”中看到的代码非常相似。

这些其他浏览器需要设置系统属性,因为不支持直接启动该属性。

  1. System.setProperty("webdriver.ie.driver", "browser-drivers\\IEDriverServer.exe");

要求驱动程序可执行文件“IEDriverServer.exe”的路径必须由“webdriver.ie.driver”系统属性设置。 指定在系统中相应保存可执行文件的路径。

为了实例化 IE 浏览器,需要进行的另一项主要更改是,

  1. WebDriver driver = new InternetExplorerDriver();

键入此语句后,“WebDriver”和“InternetExplorerDriver()”下方会出现一条波浪线。 悬停时,Eclipse将建议所有可能的快速修复。 单击建议导入相应包的第一个修复程序。

  1. import org.openqa.selenium.WebDriver;
  2. import org.openqa.selenium.ie.InternetExplorerDriver;

根据提供的注释,以下代码看起来很不言自明。 IE 浏览器启动后,它便导航到 google 页面,将“Hello World”消息打印到控制台并关闭浏览器窗口。

执行此测试后的控制台窗口如下所示,

Eclipse console

**HelloWorld_Chrome.java**类的代码,

  1. package com.blog.tests;
  2. import org.openqa.selenium.WebDriver;
  3. import org.openqa.selenium.chrome.ChromeDriver;
  4. public class HelloWorld_Chrome {
  5. public static void main(String[] args) {
  6. // System property set up
  7. System.setProperty("webdriver.chrome.driver", "browser-drivers\\chromedriver.exe");
  8. // Create a new instance for the class ChromeDriver
  9. // that implements WebDriver interface
  10. WebDriver driver = new ChromeDriver();
  11. // Assign the URL to be invoked to a String variable
  12. String baseUrl = "https://www.google.com";
  13. // Open baseUrl in IE browser window
  14. driver.get(baseUrl);
  15. // Print the message to console
  16. System.out.println("Hello World!");
  17. // Close the IE browser
  18. driver.quit();
  19. }
  20. }

如果将此代码与“HelloWorld_IE.java”进行比较,则只有两个值得注意的变化。

  1. 系统属性设置
  2. ChromeDriver类实例化

因此,我们可以得出结论,通过指定相应的系统属性并提供准确的驱动程序类实例化,可以借助 WebDriver 轻松启动和自动化相应的浏览器。

在执行 Chrome 浏览器的代码后,控制台窗口如下所示,

ConsoleOutput

我猜想,WebDriver 终于慢慢地在阳光下崭露头角了! 如果您在启动各种浏览器时遇到任何问题,欢迎大家在评论部分中表达自己的意见。

在那之前,在另一篇文章中再见! 祝你今天愉快!