pytest po模式中使用元素等待
时间: 2024-03-11 13:51:32 浏览: 162
在pytest的PO模式中,可以使用Selenium的Expected Conditions来实现元素等待。以下是一个示例:
```python
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
class LoginPage:
def __init__(self, driver):
self.driver = driver
def wait_for_login_page_to_load(self):
wait = WebDriverWait(self.driver, 10)
wait.until(EC.visibility_of_element_located((By.ID, "login-form")))
def enter_username(self, username):
username_input = self.driver.find_element_by_id("username")
username_input.send_keys(username)
def enter_password(self, password):
password_input = self.driver.find_element_by_id("password")
password_input.send_keys(password)
def click_login_button(self):
login_button = self.driver.find_element_by_id("login-button")
login_button.click()
```
在这个示例中,`wait_for_login_page_to_load`函数使用了`ExpectedConditions.visibility_of_element_located`方法来等待登录页面的元素加载完成。这个方法会等待直到指定的元素可见为止。在其他函数中,我们直接使用了`find_element_by_*`方法来查找元素,因为在`wait_for_login_page_to_load`函数中已经等待了元素的加载。
阅读全文