在進行web自動化的時候,受頁面加載速度影響比較大,常常會報element not found的錯誤。selenium1.0 中提供了selenium.isElementPresent(Xpath),用於判斷xpath是否存在,存在就執行操作,不存在就可以等待一定的時間段。在webDriver中提供了WebDriverWait類,可以智能的等待頁面元素加載完成再執行操作。
利用這個類就可以實現智能等待的效果:
wait = WebDriverWait(webdriver.chrome(),30)
elm = wait.until(lambda x: x.find_element_by_xpath(Xpath))
elm.click()
再提供一個判斷元素存在否:
def isPresent(self):
try: driver.find_element_by_xpath(Xpath)
except NoSuchElementException, e: return False
return True