Selenium 简明教程
Selenium WebDriver - EdgeOptions
EdgeOptions 是 Selenium Webdriver 中的一个特定类,它有助于处理仅适用于 Edge 驱动程序的选项。在 Edge 上运行自动化测试时,它有助于修改浏览器的设置和功能。EdgeOptions 类扩展了另一个名为 MutableCapabilities 的类。
EdgeOptions 类在最新版本的 Selenium 中可用。默认情况下,Selenium Webdriver 以没有关于 cookie、历史记录等任何预定义设置的新鲜浏览器配置文件开始。
Add Edge Extensions Using EdgeOptions
使用 EdgeOptions 类使用 Selenium IDE 扩展启动 Edge 浏览器。Edge 扩展应具有 .crx 扩展名。我们将保留扩展的 .crx 文件并将其放置在项目中的 Resources 文件夹下。
Example
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://www.tutorialspoint.com/selenium/practice/register.php");
}
}
它将显示以下输出 −
Process finished with exit code 0
Edge 浏览器已连同信息栏 Microsoft Edge is being controlled by automated test software 一起使用 Selenium IDE 扩展启动。
Disable Pop-up Blockers Using 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://www.tutorialspoint.com/selenium/practice/register.php");
}
}
它将显示以下输出 −
Process finished with exit code 0
在上面的示例中,Edge 浏览器随 Selenium IDE 扩展一起启动且阻止了弹出窗口。
Open Maximized Browser Using 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://www.tutorialspoint.com/selenium/practice/slider.php");
}
}
它将显示以下输出 −
Process finished with exit code 0
在上面的示例中,我们观察到 Edge 浏览器随 Selenium IDE 扩展、弹出窗口拦截器和最大化的浏览器一起启动。
Open in Headless Browser Using 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://www.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 扩展、弹出窗口拦截器且在无界面模式下启动。我们还使用控制台 Getting the page title in headless mode: Selenium Practice - Progress Bar 中的该消息获得了浏览器标题。