【Python】selenium 的EC.presence_of_element_located 和 EC.element_to_be_clickable 的区别
warning:
这篇文章距离上次修改已过202天,其中的内容可能已经有所变动。
在Python的Selenium库中,EC.presence_of_element_located
和 EC.element_to_be_clickable
是两个WebDriverWait的实例方法,分别用于检查页面上是否存在某个元素以及该元素是否可点击。
EC.presence_of_element_located
会返回一个元素如果它在DOM中可见,即使它不一定可点击。
EC.element_to_be_clickable
会返回一个元素如果它在DOM中可见并且可点击。
以下是两种方法的实例代码:
- 使用
EC.presence_of_element_located
:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
driver.get("http://www.example.com")
try:
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "myElement"))
)
finally:
driver.quit()
- 使用
EC.element_to_be_clickable
:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
driver.get("http://www.example.com")
try:
element = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.ID, "myElement"))
)
finally:
driver.quit()
在这两个例子中,WebDriverWait
会每隔一段时间检查一次页面上是否满足了指定的条件,直到超时。这在处理动态加载的页面时非常有用。
评论已关闭