简介
我们做脚本的时候,有时候会出现元素不可用找不到元素的情况下,这时候就需要等待元素加载出来了
等待元素加载出来有三种方法,一种是强制等待,二种是隐式等待,三是显式等待
强制等待
强制等待就是设置一个等待时间,等时间到了之后才执行下一步操作,这个是最常用最简单的方式
缺点是例如你设置了10秒的等待时间,但是元素3秒加载出来了,这时候还是需要等到10秒后才继续执行下一步
| 关键字 | 用法 |
|---|---|
| Sleep | Sleep 等待时间(秒) |
隐式等待
全局等待变量的设置,等待时间内会一直刷新页面,直到元素加载出来位置,会增加无效的等待时间
| 关键字 | 用法 | 备注 |
|---|---|---|
| Set Selenium Implicit Wait | Set Selenium Implicit Wait 等待时间 | 针对所有浏览器 |
| Set Browser Implicit Wait | Set Browser Implicit Wait 等待时间 | 仅针对当前浏览器 |
显式等待
| 关键字 | 参数 | 用法示例 | 备注 |
|---|---|---|---|
| Wait Until Element Contains | locator, expected_text, timeout=None, message=None |
Wait Until Element Contains id:my_element Hello World 10s |
- locator: 定位目标元素(如 id:my_element 或 xpath://div)。- expected_text: 期望元素包含的文本,大小写敏感。- timeout: 最大等待时间(如 10s),默认使用库超时。- message: 自定义错误信息,失败时显示。 |
| Wait Until Element Is Visible | locator, timeout=None, message=None |
Wait Until Element Is Visible xpath://div[@class='popup'] 15s |
- locator: 定位目标元素。- timeout: 最大等待时间,默认使用库超时。- message: 自定义错误信息,失败时显示。 |
| Element Should Contain | locator, expected_text, message=None |
Element Should Contain id:result Success Text not found |
- locator: 定位目标元素。- expected_text: 期望元素包含的文本,大小写敏感。- message: 自定义错误信息,失败时显示。 |
| Wait Until Page Contains | text, timeout=None, message=None |
Wait Until Page Contains Welcome to Dashboard 20s |
- text: 期望页面任意位置包含的文本。- timeout: 最大等待时间,默认使用库超时。- message: 自定义错误信息,失败时显示。 |