Python 如何让驱动程序退出(如果可以';2秒内找不到元素
如果web驱动程序在特定时间内找不到元素,如何使其在2秒钟后退出Python 如何让驱动程序退出(如果可以';2秒内找不到元素,python,python-3.x,selenium,selenium-webdriver,settimeout,Python,Python 3.x,Selenium,Selenium Webdriver,Settimeout,如果web驱动程序在特定时间内找不到元素,如何使其在2秒钟后退出 如果驱动程序找不到元素,有没有办法为它设置超时。这里我发布了我的代码片段,以等待元素出现。 这说明了如何实现这些事情。 希望这有帮助 def wait_present(self, xpath, timeout = 2): try: now = time.time() future = now + timeout while time.t
如果驱动程序找不到元素,有没有办法为它设置超时。这里我发布了我的代码片段,以等待元素出现。
这说明了如何实现这些事情。 希望这有帮助
def wait_present(self, xpath, timeout = 2):
try:
now = time.time()
future = now + timeout
while time.time() < future:
try:
target = self.browser.find_element_by_xpath(xpath)
if target is not None:
return True
except:
pass
return False
except Exception as e:
self.log_error(str(e))(str(e))
return False
def wait_present(self,xpath,timeout=2):
尝试:
now=time.time()
未来=现在+超时
而time.time()<未来:
尝试:
target=self.browser.find通过xpath(xpath)查找元素
如果目标不是无:
返回真值
除:
通过
返回错误
例外情况除外,如e:
self.log_错误(str(e))(str(e))
返回错误
只需使用显式selenium wait,超时后它返回您可以捕获的TimeoutException
try:
item = WebDriverWait(self.driver,5).until(EC.presence_of_element_located((By.XPATH, "your xpath or other selector")))
except Exception as e:
print("time is over")
exit()
print("item was founded : ", item)
这是您需要的导入:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC