将 WebDriver (Chromium) 用于测试自动化
01/29/2021
本文内容
WebDriver 允许开发人员创建模拟用户交互的自动化测试。 WebDriver 测试和模拟与 JavaScript 单元测试不同,因为 WebDriver:
访问在浏览器中运行的 JavaScript 不可用的功能和信息。
更精确地模拟用户事件或操作系统级事件。
在单个测试会话中管理多个窗口、选项卡和网页。
在特定的计算机上运行 Microsoft Edge 的多个会话。
以下部分介绍如何开始使用适用于 Microsoft Edge 的 WebDriver \ (Chromium) 。
安装 Microsoft Edge (Chromium)
确保安装Microsoft Edge (Chromium) 。 若要确认已安装 Microsoft Edge \ (Chromium) ,请导航到并验证版本号是版本 edge://settings/help 75 或更高版本。
下载 Microsoft Edge 驱动程序
若要开始自动执行测试,请使用以下步骤来确保安装的 WebDriver 版本与浏览器版本匹配。
导航 edge://settings/help 到获取 Microsoft Edge 的版本。
2020 年 1 月 14 日 Microsoft Edge Canary 的生成号
导航到 Microsoft Edge 驱动程序下载 页面,并下载与 Microsoft Edge 的版本号匹配的驱动程序。
Microsoft Edge 驱动程序页的"下载 " 部分
选择 WebDriver 语言绑定
必须下载的最后一个组件是特定语言的客户端驱动程序,用于将代码 \ (Python、Java、C#、Ruby、JavaScript) 转换为 Microsoft Edge \ (Chromium) 中运行的命令。
下载你选择的 WebDriver 语言绑定。 Microsoft Edge 团队建议使用 Selenium 4.00-alpha07 或更高版本,因为它支持 Microsoft Edge \ (Chromium) 。 但是,你可以控制所有较旧版本的 Selenium 中的 Microsoft Edge \ (Chromium) ,包括当前稳定的 Selenium 3 版本。
重要
如果之前使用和类自动执行或测试 Microsoft Edge \ (Chromium) ,则 WebDriver 代码不会在 Microsoft Edge 版本 ChromeDriver ChromeOptions 80 或更高版本中运行。 若要解决此问题,请更新测试以使用 EdgeOptions 该类并下载 Microsoft Edge 驱动程序。
使用 Selenium 3
如果你已使用 [Selenium 3,][|::ref1::|]你可能已有浏览器测试,并且想要添加 Microsoft Edge \ (Chromium) 的覆盖范围,而无需更改 Selenium 版本。 若要使用 [Selenium 3][|::ref2::|] 为 Microsoft Edge \ (EdgeHTML) 和 Microsoft Edge \ (Chromium) 编写自动测试,请安装适用于 Microsoft Edge 的 Selenium 工具 程序包以使用更新的驱动程序。 工具 EdgeDriver EdgeDriverService 中包含的类与 Selenium 4 中的内置等效项完全兼容。
使用以下步骤将适用于 Microsoft Edge 和[Selenium 3][|::ref3::|]的Selenium 工具添加到项目中。
pip install msedge-selenium-tools selenium==3.141
如果你Java Maven,请通过向文件添加以下依赖项来添加msedge-selenium-tools-java: pom.xml
com.microsoft.edge
msedge-selenium-tools-java
[3.141.0,)
The Java package is also available to download directly on the Selenium Tools for Microsoft Edge Releases page.
使用 [npm][JavaScript|::ref4::|] 安装 edge-selenium-tools 和 selenium-webdriver 程序包。
npm install @microsoft/edge-selenium-tools selenium-webdriver
使用 WebDriver (Microsoft Edge) Chromium
若要使用 WebDriver 自动化浏览器,必须先使用首选的 WebDriver 语言绑定启动 WebDriver 会话。 会话是浏览器的单个运行实例,可以使用 WebDriver 命令进行控制。 启动 WebDriver 会话将启动一个新的浏览器实例。 启动的浏览器将保持打开状态,直到您关闭 WebDriver 会话。
以下内容将引导你使用 Selenium 启动与 Microsoft Edge \ (Chromium) 的 WebDriver 会话。 可以使用 Selenium 3 或 4 运行这些示例。 若要与 Selenium 3 一起使用,必须安装适用于 Microsoft Edge 的 Selenium 工具包。
自动化 Microsoft Edge (Chromium)
Selenium 使用 EdgeDriver 该类管理 Microsoft Edge \ (Chromium) 会话。 若要启动会话并自动执行 Microsoft Edge \ (Chromium) ,请创建一个新对象,并传递一个属性设置为 EdgeDriver EdgeOptions UseChromium true 的对象。
var options = new EdgeOptions();
options.UseChromium = true;
var driver = new EdgeDriver(options);
options = EdgeOptions()
options.use_chromium = True
driver = Edge(options)
该类 EdgeDriver 仅支持 Microsoft Edge (Chromium) ,不支持 Microsoft Edge (EdgeHTML) 。 对于基本用法,你可以创建一个 EdgeDriver 而不提供 EdgeOptions 。
EdgeDriver driver = new EdgeDriver();
let options = new edge.Options();
options.setEdgeChromium(true);
let driver = edge.Driver.createSession(options);
备注
如果你的 IT 管理员将DeveloperToolsAvailability策略设置为 ,Microsoft Edge 驱动程序无法驱动 2 Microsoft Edge (Chromium) 因为驱动程序使用Microsoft Edge DevTools。 确保 将 DeveloperToolsAvailability 策略设置为或自动执行 Microsoft Edge (0 1 Chromium) 。
选择特定浏览器二进制文件 (仅 Chromium)
可以使用特定的 Microsoft Edge \ (Chromium) 启动 WebDriver 会话。 例如,可以使用 Microsoft Edge 预览频道(如 Microsoft Edge Beta)运行测试。
var options = new EdgeOptions();
options.UseChromium = true;
options.BinaryLocation = @"C:\Program Files (x86)\Microsoft\Edge Beta\Application\msedge.exe";
var driver = new EdgeDriver(options);
options = EdgeOptions()
options.use_chromium = True
options.binary_location = r"C:\Program Files (x86)\Microsoft\Edge Beta\Application\msedge.exe"
driver = Edge(options)
EdgeOptions options = new EdgeOptions();
options.setBinary("C:\\Program Files (x86)\\Microsoft\\Edge Beta\\Application\\msedge.exe");
EdgeDriver driver = new EdgeDriver(options);
let options = new edge.Options();
options.setEdgeChromium(true);
options.setBinaryPath("C:\\Program Files (x86)\\Microsoft\\Edge Beta\\Application\\msedge.exe");
let driver = edge.Driver.createSession(options);
自定义 Microsoft Edge 驱动程序服务
使用类创建类实例时,它会为 EdgeDriver EdgeOptions Microsoft Edge EdgeDriverService \ (EdgeHTML) 或 Microsoft Edge \ (Chromium) 创建和启动相应的类。
如果要创建一个 ,请创建一个为 EdgeDriverService Microsoft Edge \ (Chromium) 方法 CreateChromiumService() 。 当您需要添加自定义项时,您可能会发现它非常有用。 例如,以下代码开始详细日志输出。
using (var service = EdgeDriverService.CreateChromiumService())
{
service.UseVerboseLogging = true;
var driver = new EdgeDriver(service);
}
备注
在传递给实例时,不需要 EdgeOptions EdgeDriverService 提供 EdgeDriver 对象。 该类根据你提供的服务使用 EdgeDriver Microsoft Edge \ (EdgeHTML) 或 Microsoft Edge \ (Chromium) 的默认选项。
但是,如果要同时提供这两个类和类,请确保为相同版本的 Microsoft Edge 配置这两 EdgeDriverService EdgeOptions 者。 例如,在该类中不能使用默认的 Microsoft Edge \ (EdgeHTML) 类和 EdgeDriverService Chromium EdgeOptions 属性。 该类 EdgeDriver 会引发错误,以防止使用不同的版本。
使用 Python 时 Edge ,对象将创建和管理 EdgeService 。 若要配置 EdgeService ,请向对象传递 Edge 其他参数,如以下代码所示。
service_args = ['--verbose']
driver = Edge(service_args = service_args)
使用此方法 createDefaultService() 创建为 Microsoft EdgeDriverService Edge \ (Chromium) 。 驱动程序服务Java系统属性Java自定义。 例如,以下代码使用 "webdriver.edge.verboseLogging" 该属性启用详细日志输出。
System.setProperty("webdriver.edge.verboseLogging", "true");
EdgeDriverService service = EdgeDriverService.createDefaultService();
EdgeOptions options = new EdgeOptions();
EdgeDriver driver = new EdgeDriver(service, options);
使用 JavaScript 时,使用类 Service 创建和 ServiceBuilder 配置 。 或者,你可以将对象传递给该对象,该对象将启动 Service Driver \ (并停止) 服务。
若要配置 Service ,请运行类中的另一 ServiceBuilder 个方法,然后再 build() 使用该方法。 然后作为 service 参数在方法中 Driver.createSession() 传递。
let service = new edge.ServiceBuilder().enableVerboseLogging().build();
let driver = edge.Driver.createSession(options, service);
使用Chromium-Specific选项
如果将该属性设置为 ,则您可以使用类访问与自动执行其他 Chromium 浏览器时所使用的特定于 UseChromium true EdgeOptions Chromium 的属性和方法相同的属性和方法。
var options = new EdgeOptions();
options.UseChromium = true;
options.AddArgument("headless");
options.AddArgument("disable-gpu");
options = EdgeOptions()
options.use_chromium = True
options.add_argument("headless")
options.add_argument("disable-gpu")
EdgeOptions options = new EdgeOptions();
options.addArguments("headless");
options.addArguments("disable-gpu");
let options = new edge.Options();
options.setEdgeChromium(true);
options.addArguments("headless");
options.addArguments("disable-gpu");
备注
如果该属性设置为,则不能对 UseChromium Microsoft Edge true \ (EdgeHTML) 。
其他 WebDriver 安装选项
百年
如果你使用 Microsofty 作为程序包管理器,请运行以下命令来安装 Microsoft Edge 驱动程序。
choco install selenium-chromium-edge-driver
Docker
如果使用 Docker,请通过运行以下命令,下载预配置映像和 Microsoft Edge \ (Chromium) 和预安装的 Microsoft Edge 驱动程序。
docker run -d -p 9515:9515 mcr.microsoft.com/msedge/msedgedriver
有关详细信息,请导航到 Docker Hub 上的 msedgedriver 容器。
后续步骤
若要了解有关 WebDriver 以及如何使用 Selenium 编写自动 WebDriver 测试的信息,请导航到 Selenium 文档。
联系 Microsoft Edge DevTools 团队
Microsoft Edge 团队希望倾听你有关使用 WebDriver、Selenium 和 Microsoft Edge 的反馈。 若要向团队发送你的问题和意见,请选择 Microsoft **** Edge DevTools 中的"发送反馈"图标或发送推文@EdgeDevTools。