Edge 特定功能
这些是特定于微软Edge浏览器的功能和特性.
微软Edge是用Chromium实现的, 最早支持版本是v79.
与Chrome类似, Edge驱动的主版本号必须与Edge浏览器的主要版本匹配.
在 Chrome 页面 上找到的所有capabilities和选项也适用于Edge.
选项
所有浏览器的共有功能在 Options 页面.
Chromium独有的功能记录在谷歌的
Capabilities & ChromeOptions
使用基本定义的选项启动 Edge 会话如下所示:
/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java
/examples/python/tests/browsers/test_edge.py
/examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs
/examples/ruby/spec/browsers/edge_spec.rb
/examples/javascript/test/getting_started/openEdgeTest.spec.js
参数
args 参数用于列出启动浏览器时使用的命令行开关.
有两个很好的资源可用于研究这些参数:
常用参数包括 --start-maximized 、 --headless=new 和 --user-data-dir=...
为options添加参数:
/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java
/examples/python/tests/browsers/test_edge.py
/examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs
/examples/ruby/spec/browsers/edge_spec.rb
/examples/javascript/test/browser/edgeSpecificCaps.spec.js
在指定位置启动浏览器
binary 参数包含要使用的浏览器备用位置的路径.
使用此参数, 您可以使用 chromedriver 驱动各种基于 Chromium 的浏览器.
在options中添加浏览器位置:
/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java
/examples/python/tests/browsers/test_edge.py
/examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs
/examples/ruby/spec/browsers/edge_spec.rb
添加扩展
extensions参数接受 crx 文件.
至于已解压的目录、中提到,
请使用本文中提及的 load-extension.
在options中添加扩展:
/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java
/examples/python/tests/browsers/test_edge.py
/examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs
/examples/ruby/spec/browsers/edge_spec.rb
/examples/javascript/test/browser/edgeSpecificCaps.spec.js
保持浏览器打开
将 detach 参数设置为 true后,
只要不向driver发送退出命令,
就可以在进程结束后保持浏览器打开.
Note: This is already the default behavior in Java.
/examples/python/tests/browsers/test_edge.py
Note: This is already the default behavior in .NET.
/examples/ruby/spec/browsers/edge_spec.rb
/examples/javascript/test/browser/edgeSpecificCaps.spec.js
排除参数
MSEdgedriver 有几个用于启动浏览器的默认参数.
如果不希望添加这些参数, 可将它们传递到 excludeSwitches 中.
一个常见的例子就是重新打开弹出窗口拦截器.
默认参数的完整列表参考
Chromium Source Code
在options中设置排除参数:
/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java
/examples/python/tests/browsers/test_edge.py
/examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs
/examples/ruby/spec/browsers/edge_spec.rb
/examples/javascript/test/browser/edgeSpecificCaps.spec.js
服务
创建默认服务对象, 设置驱动程序位置和端口的示例可以参考
Driver服务 页面.
日志输出
获取驱动程序日志有助于调试问题。
服务类可让您配置日志的输出。
日志输出会被忽略, 除非用户显示指定.
文件输出
更改日志输出以保存到特定文件:
Selenium v4.10
/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java
注意: Java同样允许在系统属性中配置文件输出:
Property key: EdgeDriverService.EDGE_DRIVER_LOG_PROPERTY
Property value: String representing path to log file
/examples/python/tests/browsers/test_edge.py
/examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs
Selenium v4.10
/examples/ruby/spec/browsers/edge_spec.rb
控制台输出
要更改日志输出, 使其在控制台中显示为标准输出:
Selenium v4.10
/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java
注意: Java同样允许在系统属性中配置控制台输出:
属性键: EdgeDriverService.EDGE_DRIVER_LOG_PROPERTY
属性值: DriverService.LOG_STDOUT 或 DriverService.LOG_STDERR
Selenium v4.11
/examples/python/tests/browsers/test_edge.py
$stdout and $stderr are both valid values
Selenium v4.10
/examples/ruby/spec/browsers/edge_spec.rb
日志级别
有 6 种可用的日志级别: ALL, DEBUG, INFO, WARNING, SEVERE, 以及 OFF.
请注意, --verbose 等同于 --log-level=ALL , 而 --silent 等同于 --log-level=OFF,
因此, 本例只是一般性地设置日志级别:
Selenium v4.8
/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java
注意: Java同样允许在系统属性中配置日志级别:
属性键: EdgeDriverService.EDGE_DRIVER_LOG_LEVEL_PROPERTY
属性值: String representation of ChromiumDriverLogLevel enum
/examples/python/tests/browsers/test_edge.py
Selenium v4.10
/examples/ruby/spec/browsers/edge_spec.rb
日志文件功能
有 2 项功能只有在记录到文件时才可用:
要使用它们, 还需要明确指定日志路径和日志级别.
日志输出将由driver而非进程管理, 因此可能会出现细微差别.
Selenium v4.8
/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java
注意: Java同样允许在系统属性中配置开闭这些功能:
属性键: EdgeDriverService.EDGE_DRIVER_APPEND_LOG_PROPERTY 以及 EdgeDriverService.EDGE_DRIVER_READABLE_TIMESTAMP
属性值: "true" 或 "false"
/examples/python/tests/browsers/test_edge.py
Selenium v4.8
/examples/ruby/spec/browsers/edge_spec.rb
禁用构建检查
Edge 浏览器和 msedgedriver 版本应该匹配,
如果不匹配, 驱动程序就会出错.
如果禁用构建检查, 则可以强制驱动程序与任何版本的 Edge 一起使用.
请注意, 这是一项不受支持的功能, 而且不会对错误进行调查.
Selenium v4.8
/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java
注意: Java同样允许在系统属性中配置禁用构建检查:
属性键: EdgeDriverService.EDGE_DRIVER_DISABLE_BUILD_CHECK
属性值: "true" 或 "false"
/examples/python/tests/browsers/test_edge.py
/examples/dotnet/SeleniumDocs/Browsers/EdgeTest.cs
Selenium v4.8
/examples/ruby/spec/browsers/edge_spec.rb
Internet Explorer 兼容模式
微软Edge可以被"Internet Explorer兼容模式"驱动,
该模式使用Internet Explorer驱动类与微软Edge结合使用.
阅读 Internet Explorer 页面 了解更多详情.
特殊功能
某些浏览器实现了其特有的附加功能.
Cast
您可以使用 Edge 驱动 Chrome Cast 设备, 包括共享标签页
/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java
/examples/python/tests/browsers/test_edge.py
/examples/ruby/spec/browsers/edge_spec.rb
网络状况
您可以模拟各种网络状况.
/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java
/examples/python/tests/browsers/test_edge.py
/examples/ruby/spec/browsers/edge_spec.rb
日志
/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java
/examples/python/tests/browsers/test_edge.py
/examples/ruby/spec/browsers/edge_spec.rb
权限
/examples/java/src/test/java/dev/selenium/browsers/EdgeTest.java
/examples/python/tests/browsers/test_edge.py
/examples/ruby/spec/browsers/edge_spec.rb
开发者工具
有关在 Edge 中使用 DevTools 的更多信息, 请参阅 [Chrome DevTools] 部分.