Selenium:等待元素存在、可见且可交互
在 Selenium 中,使用 sleep() 等待元素出现是不可取的。 Selenium API 提供了更明确的等待机制,确保您的测试可靠且稳健。
等待元素出现
等待元素出现存在于 DOM 中,使用 WebDriverWait 和 EC.presence_of_element_ located()方法:
WebDriverWait(browser, 20).until(EC.presence_of_element_located((By.CSS_SELECTOR, ".reply-button"))).click()
等待元素可见
要等待元素可见且其大小大于 0,请使用 EC.visibility_of_element_ located( ):
email = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "element_css"))).get_attribute("value")
等待元素可点击
要等待元素可见并启用,请使用 EC.element_to_be_clickable():
WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, ".reply-button"))).click()
使用显式等待
在浏览器中,这些等待命令将暂停测试的执行,直到满足指定的条件或发生超时。显式等待有几个好处:
参考文献:
以上是Selenium 如何有效地等待元素出现、可见且可交互?的详细内容。更多信息请关注PHP中文网其他相关文章!