Edge 特定功能

这些是特定于微软Edge浏览器的功能和特性.

微软Edge是用Chromium实现的, 最早支持版本是v79. 与Chrome类似, Edge驱动的主版本号必须与Edge浏览器的主要版本匹配.

Chrome 页面 上找到的所有capabilities和选项也适用于Edge.

选项

所有浏览器的共有功能在 Options 页面.

Chromium独有的功能记录在谷歌的 Capabilities & ChromeOptions

使用基本定义的选项启动 Edge 会话如下所示:

    @driver = Selenium::WebDriver.for :edge, options: options
  end
      let options = new edge.Options();
      driver = await env.builder()
        .setEdgeOptions(options)
        .setEdgeService(new edge.ServiceBuilder(edgedriver.binPath()))
        .build();

参数

args 参数用于列出启动浏览器时使用的命令行开关. 有两个很好的资源可用于研究这些参数:

常用参数包括 --start-maximized--headless=new--user-data-dir=...

为options添加参数:

在指定位置启动浏览器

binary 参数包含要使用的浏览器备用位置的路径. 使用此参数, 您可以使用 chromedriver 驱动各种基于 Chromium 的浏览器.

在options中添加浏览器位置:

添加扩展

extensions参数接受 crx 文件. 至于已解压的目录、中提到, 请使用本文中提及的 load-extension.

在options中添加扩展:

保持浏览器打开

detach 参数设置为 true后, 只要不向driver发送退出命令, 就可以在进程结束后保持浏览器打开.

Note: This is already the default behavior in Java.

Note: This is already the default behavior in .NET.

排除参数

MSEdgedriver 有几个用于启动浏览器的默认参数. 如果不希望添加这些参数, 可将它们传递到 excludeSwitches 中. 一个常见的例子就是重新打开弹出窗口拦截器. 默认参数的完整列表参考 Chromium Source Code

在options中设置排除参数:

服务

创建默认服务对象, 设置驱动程序位置和端口的示例可以参考 Driver服务 页面.

日志输出

获取驱动程序日志有助于调试问题。 服务类可让您配置日志的输出。 日志输出会被忽略, 除非用户显示指定.

文件输出

更改日志输出以保存到特定文件:

Selenium v4.10

            .withAppendLog(true)

注意: Java同样允许在系统属性中配置文件输出:
Property key: EdgeDriverService.EDGE_DRIVER_LOG_PROPERTY
Property value: String representing path to log file

    driver = webdriver.Edge(service=service)

Selenium v4.10

      expect(File.readlines(file_name).grep(/\[DEBUG\]:/).any?).to eq true

控制台输出

要更改日志输出, 使其在控制台中显示为标准输出:

Selenium v4.10

        System.setProperty(EdgeDriverService.EDGE_DRIVER_LOG_PROPERTY,

注意: Java同样允许在系统属性中配置控制台输出:
属性键: EdgeDriverService.EDGE_DRIVER_LOG_PROPERTY
属性值: DriverService.LOG_STDOUTDriverService.LOG_STDERR

Selenium v4.11

    driver = webdriver.Edge(service=service)

$stdout and $stderr are both valid values

Selenium v4.10

日志级别

有 6 种可用的日志级别: ALL, DEBUG, INFO, WARNING, SEVERE, 以及 OFF. 请注意, --verbose 等同于 --log-level=ALL , 而 --silent 等同于 --log-level=OFF, 因此, 本例只是一般性地设置日志级别:

Selenium v4.8

        Assertions.assertTrue(fileContent.contains(expected));
    }

注意: Java同样允许在系统属性中配置日志级别:
属性键: EdgeDriverService.EDGE_DRIVER_LOG_LEVEL_PROPERTY
属性值: String representation of ChromiumDriverLogLevel enum

    driver = webdriver.Edge(service=service)

Selenium v4.10

      @driver = Selenium::WebDriver.for :edge, service: service

日志文件功能

有 2 项功能只有在记录到文件时才可用:

  • 追加日志
  • 可读时间戳

要使用它们, 还需要明确指定日志路径和日志级别. 日志输出将由driver而非进程管理, 因此可能会出现细微差别.

Selenium v4.8

注意: Java同样允许在系统属性中配置开闭这些功能:
属性键: EdgeDriverService.EDGE_DRIVER_APPEND_LOG_PROPERTY 以及 EdgeDriverService.EDGE_DRIVER_READABLE_TIMESTAMP
属性值: "true""false"

禁用构建检查

Edge 浏览器和 msedgedriver 版本应该匹配, 如果不匹配, 驱动程序就会出错. 如果禁用构建检查, 则可以强制驱动程序与任何版本的 Edge 一起使用. 请注意, 这是一项不受支持的功能, 而且不会对错误进行调查.

Selenium v4.8

注意: Java同样允许在系统属性中配置禁用构建检查:
属性键: EdgeDriverService.EDGE_DRIVER_DISABLE_BUILD_CHECK
属性值: "true""false"

Internet Explorer 兼容模式

微软Edge可以被"Internet Explorer兼容模式"驱动, 该模式使用Internet Explorer驱动类与微软Edge结合使用. 阅读 Internet Explorer 页面 了解更多详情.

特殊功能

某些浏览器实现了其特有的附加功能.

Cast

您可以使用 Edge 驱动 Chrome Cast 设备, 包括共享标签页

网络状况

您可以模拟各种网络状况.

日志

权限

开发者工具

有关在 Edge 中使用 DevTools 的更多信息, 请参阅 [Chrome DevTools] 部分.

最后修改 February 3, 2025: update edge doc (#2158) (b40a1f8a87)