Selenium 等到元素出现、可见和可交互,然后再执行操作

bluesky1年前 ⋅ 1406 阅读
Selenium 是一个自动化测试框架,用于模拟用户在浏览器中的行为,通过定位元素进行交互操作。在测试过程中,我们需要保证元素出现后再执行相应的操作,以确保测试结果的准确性。

在 Selenium 中,我们可以使用显性等待和隐性等待来等待元素的出现、可见和可交互状态。

1. 显性等待

显性等待是在代码中设置等待时间,等待元素出现后才执行后续操作。我们可以设置等待时间和等待条件,直到等待条件满足或等待时间到达就结束等待。

例如:

```python
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, 'element_id')))
```

以上代码会等待最多 10 秒钟(在每秒钟检查一次)直到元素出现。如果元素出现了,WebDriver 就会返回这个元素;如果没出现,将抛出 TimeoutException 异常。

2. 隐性等待

隐性等待是设置一个等待时间,等待元素出现后再进行操作。这种等待方式对整个 WebDriver 生命周期都有效。

例如:

```python
driver.implicitly_wait(10) # 设置等待时间为 10 秒钟
```

以上代码会在找不到元素时等待最多 10 秒钟,直到元素可见为止。如果元素在等待时间内出现了,WebDriver 就会立即当场进行操作;如果超时,将抛出 NoSuchElementException 异常。

无论是使用显性等待还是隐性等待,等待元素出现、可见和可交互是一种良好的编程习惯。这样能保证测试过程的正确性和稳定性。

全部评论: 0

    相关推荐