Python 如何让驱动程序退出(如果可以';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

如果web驱动程序在特定时间内找不到元素,如何使其在2秒钟后退出


如果驱动程序找不到元素,有没有办法为它设置超时。

这里我发布了我的代码片段,以等待元素出现。
这说明了如何实现这些事情。 希望这有帮助

    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