根据 Waits â Selenium Python Bindings 2 documentation ,我可以等待元素出现并可见(例如,如果它是通过AJAX调用加载的),如下所示:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC d = selenium.webdriver.<whichever>() w = WebDriverWait(d,10) w.until(EC.visibility_of_element_located((By.XPATH,"<xpath>")))
但是,在这之后要处理这个元素,我必须再次定位它(复制搜索参数),这非常不方便。 因为这是一项普通的任务,我很确定 selenium 必须有一些快捷方式,可以等待元素并在成功时返回它。
selenium
WebDriverWait
visibility_of()
WebElement
网络元素
until 函数返回 WebElemwnt 从机场回来 Expected_condition
WebElemwnt
Expected_condition
与超时过期前的null或false不同。
visibility_of_element_located 内部使用 driver.find_element WebElement 将被退回。
visibility_of_element_located
driver.find_element
element = w.until(EC.visibility_of_element_located((By.XPATH,"<xpath>"))) # do something with the element