• Selenium Video Tutorials

Selenium WebDriver - Edge 选项



EdgeOptions 是 Selenium Webdriver 中的一个特定类,它有助于处理仅适用于 Edge 驱动程序的选项。它有助于在 Edge 上运行自动化测试时修改浏览器的设置和功能。EdgeOptions 类扩展了另一个称为 MutableCapabilities 类的类。

EdgeOptions 类在最新版本的 Selenium 中可用。默认情况下,Selenium Webdriver 从一个新的浏览器配置文件开始,该配置文件没有任何关于 Cookie、历史记录等的预定义设置。

使用 EdgeOptions 添加 Edge 扩展

使用 EdgeOptions 类启动带有 Selenium IDE 扩展的 Edge 浏览器。Edge 扩展应具有 .crx 扩展名。我们将保留扩展的 .crx 文件,并将其放置在项目中的 Resources 文件夹下。

Selenium Edge Options 1

示例

package org.example;

import org.openqa.selenium.*;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.edge.EdgeOptions;
import java.io.File;
import java.util.concurrent.TimeUnit;

public class EdgeOptnsExtension {
   public static void main(String[] args) throws InterruptedException {

      // object of EdgeOptions
      EdgeOptions opt = new EdgeOptions();

      // adding .crx extension to project structure
      opt.addExtensions(new File("./Resources/SeleniumIDE.crx"));

      // Initiate the Webdriver
      WebDriver driver = new EdgeDriver(opt);

      // adding implicit wait of 15 secs
      driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);

      // Opening the webpage with Selenium IDE extension
      driver.get("https://tutorialspoint.com/selenium/practice/register.php");
   }
}

它将显示以下输出 -

Process finished with exit code 0
Selenium Edge Options 2

Edge 浏览器已启动 Selenium IDE 扩展,以及信息栏“**Microsoft Edge 正在由自动化测试软件控制**”。

使用 EdgeOptions 禁用弹出窗口阻止程序

让我们举一个例子,我们将打开禁用弹出窗口阻止程序的 Edge 浏览器。

package org.example;

import org.openqa.selenium.*;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.edge.EdgeOptions;
import java.io.File;
import java.util.List;
import java.util.concurrent.TimeUnit;

public class EdgeOptnsBlockPopUp {
   public static void main(String[] args) throws InterruptedException {

      // object of EdgeOptions
      EdgeOptions opt = new EdgeOptions();

      // adding .crx extension to project structure
      opt.addExtensions(new File("./Resources/SeleniumIDE.crx"));

      // disable pop-up blocker
      opt.setExperimentalOption("excludeSwitches", List.of("disable-popup-blocking"));

      // Initiate the Webdriver
      WebDriver driver = new EdgeDriver(opt);

      // adding implicit wait of 15 secs
      driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);

      // Opening the webpage with Selenium IDE extension
      driver.get("https://tutorialspoint.com/selenium/practice/register.php");
   }
}

它将显示以下输出 -

Process finished with exit code 0

在上面的示例中,Edge 浏览器已启动 Selenium IDE 扩展,并且阻止了弹出窗口。

使用 EdgeOptions 打开最大化浏览器

在此示例中,我们将以最大化大小打开并启动 Edge 浏览器。

package org.example;

import org.openqa.selenium.*;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.edge.EdgeOptions;
import java.io.File;
import java.util.List;
import java.util.concurrent.TimeUnit;

public class EdgeOptnsMaximized {
   public static void main(String[] args) throws InterruptedException {

      // object of EdgeOptions
      EdgeOptions opt = new EdgeOptions();

      // adding .crx extension
      opt.addExtensions(new File("./Resources/SeleniumIDE.crx"));

      // disable pop-up blocker
      opt.setExperimentalOption("excludeSwitches", List.of("disable-popup-blocking"));

      // open browser in maximized mode
      opt.addArguments("--start-maximized");

      // Initiate the Webdriver
      WebDriver driver = new EdgeDriver(opt);

      // adding implicit wait of 20 secs
      driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);

      // Opening the webpage
      driver.get("https://tutorialspoint.com/selenium/practice/slider.php");
   }
}

它将显示以下输出 -

Process finished with exit code 0

在上面的示例中,我们观察到 Edge 浏览器已启动 Selenium IDE 扩展,并带有弹出窗口阻止程序,并且处于最大化浏览器状态。

使用 EdgeOptions 在无头浏览器中打开

在此示例中,我们将以 Edge 无头模式打开并启动应用程序。

package org.example;

import org.openqa.selenium.*;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.edge.EdgeOptions;
import java.io.File;
import java.util.List;
import java.util.concurrent.TimeUnit;

public class EdgeOptnsHeadless {
   public static void main(String[] args) throws InterruptedException {

      // object of EdgeOptions
      EdgeOptions opt = new EdgeOptions();

      // adding .crx extension to project structure
      opt.addExtensions(new File("./Resources/SeleniumIDE.crx"));

      // disable pop-up blocker
      opt.setExperimentalOption("excludeSwitches", List.of("disable-popup-blocking"));

      // open in headless mode
      opt.addArguments("--headless=new");

      // Initiate the Webdriver
      WebDriver driver = new EdgeDriver(opt);

      // adding implicit wait of 15 secs
      driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);

      // Opening the webpage
      driver.get("https://tutorialspoint.com/selenium/practice/progress-bar.php");

      // getting page title
      System.out.println("Getting the page title in headless mode: " + driver.getTitle());

      // Quitting browser
      driver.quit();
   }
}

它将显示以下输出 -

Getting the page title: Selenium Practice - Student Registration Form

在上面的示例中,我们观察到 Edge 浏览器已启动 Selenium IDE 扩展,并带有弹出窗口阻止程序,并且处于无头模式。我们还在控制台中获得了带有消息的浏览器标题 - **在无头模式下获取页面标题:Selenium 实践 - 进度条**。

结论

这总结了我们关于 Selenium Webdriver Edge 选项教程的全面内容。我们从描述 EdgeOptions 类开始,并逐步介绍了如何向 Edge 浏览器添加扩展、如何阻止弹出窗口、如何最大化浏览器以及如何使用 EdgeOptions 和 Selenium Webdriver 处理无头 Edge 浏览器执行的示例。这使您深入了解 Selenium Webdriver 中的 EdgeOptions 类。明智的做法是不断练习您所学的内容,并探索与 Selenium 相关的其他内容,以加深您的理解并扩展您的视野。

广告