title: “共享的功能”
weight: 1
为了通过Selenium WebDriver创建新会话,
本地端应向远程端提供基本功能.
远端使用相同的功能集来创建会话并描述当前会话功能.
WebDriver提供了每个远程端将 (或应该) 支持实现的功能.
以下是WebDriver支持的功能:
browserName:
此功能用于设置既定会话的 browserName
.
如果未在远端安装指定的浏览器,
则会话创建将失败
browserVersion:
此功能是可选的, 用于在远程端设置可用的浏览器版本.
例如, 如果在仅安装80版本的系统上询问75版本的Chrome,
则会话创建将失败
页面加载策略
通过URL导航到新页面时, 默认情况下, Selenium将等待页面完全加载后再进行响应. 这对于初学者来说效果很好, 但是在加载大量第三方资源的页面上可能会导致较长的等待时间. 在这种情况下, 使用非默认策略可以使测试的执行速度更快, 但是也可能导致不稳定, 即页面上的元素随元素加载和大小变化而改变位置.
页面加载策略可以参考链接
document.readyState
如下述表格的描述:
策略 | 准备完成的状态 | 备注 |
---|---|---|
normal | complete | 默认情况下使用, 等待所有资源下载完成 |
eager | interactive | DOM访问已准备就绪, 但其他资源 (如图像) 可能仍在加载中 |
none | Any | 完全不阻塞WebDriver |
platformName
这标识了远端的操作系统,
获取 platformName
将返回操作系统的名称.
在基于云的供应者中,
设置 platformName
将在远程端设置操作系统.
acceptInsecureCerts
此功能检查在会话期间导航时
是否使用了过期的 (或) 无效的 TLS Certificate
.
如果将功能设置为 false
,
则页面浏览遇到任何域证书问题时,
将返回insecure certificate error .
如果设置为 true
, 则浏览器将信任无效证书.
默认情况下, 此功能将信任所有自签名证书.
设置后, acceptInsecureCerts
功能将在整个会话中生效.
Session timeouts
WebDriver session
具有一定的 session timeout
间隔,
在此间隔内, 用户可以控制执行脚本或从浏览器检索信息的行为.
每个会话超时都配置有不同 timeouts
的组合,
如下所述:
Script Timeout:
指定在当前浏览上下文中, 中断正在执行脚本的时机.
WebDriver创建新会话时,
将设置默认的超时时间为 30,000 .
Page Load Timeout:
指定在当前浏览上下文中, 加载网页的时间间隔.
WebDriver创建新会话时,
默认设置超时时间为 300,000 .
如果页面加载限制了给定 (或默认) 的时间范围,
则该脚本将被 TimeoutException 停止.
Implicit Wait Timeout
指定在定位元素时, 等待隐式元素定位策略的时间.
WebDriver创建新会话时,
将设置默认超时时间为 0 .
unhandledPromptBehavior
指定当前会话 user prompt handler
的状态.
默认为 dismiss and notify state .
User Prompt Handler
这定义了在远端出现用户提示时必须采取的措施.
该行为由unhandledPromptBehavior
功能定义,
具有以下状态:
- dismiss
- accept
- dismiss and notify
- accept and notify
- ignore
setWindowRect
此命令更改当前浏览上下文中窗口的大小和位置.
此命令作为 getWindowRect
对应的设置方法,
该命令接受 width, height,
x, y 作为 可选 参数.
在自动化期间,
当前浏览上下文将与描述浏览器窗口可见性状态的窗口状态相关联.
窗口状态为
- maximized
- minimized
- normal
- fullscreen
设置 Width 或 Height 不能保证结果窗口的大小一定完全匹配所请求的窗口大小.
这是因为某些驱动程序可能无法以单像素为单位调整大小.
因此, 通过 getWindowRect
获取窗口状态 (或详细信息)
可能与浏览器设置的值不匹配.
strictFileInteractability
新功能用于是否对 类型为文件的输入(input type=file) 元素进行严格的交互性检查.
默认关闭严格性检查,
在将 元素的Send Keys 方法作用于隐藏的文件上传时,
会有控制方面的行为区别.
官方链接为:https://www.selenium.dev/documentation/zh-cn/driver_idiosyncrasies/shared_capabilities