selenium4 增加超时和等待时间
增加全局的超时 和 等待时间:
import time from selenium.webdriver import Keys, ActionChains from selenium.webdriver.common.by import By from selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager ''' 初始化操作 ''' driver = webdriver.Chrome(service=Service(ChromeDriverManager().install())) def init(): # 最大化操作 driver.maximize_window() driver.set_script_timeout(60) # 智能等待找到元素后立即继续执行,全局生效 driver.implicitly_wait(60) driver.set_page_load_timeout(60) init() ''' 元素点击操作 ''' def clickDemo(): # 点击(鼠标左键)页面按钮:click() driver.get("http://localhost:8080/click.html") button1 = driver.find_element(By.ID, "button1") is_displayed = button1.is_enabled() #判断元素是否是可使用的,True/False if is_displayed: button1.click() # 关闭弹窗 driver.switch_to.alert.accept()
方案二:
在查找元素时,新增一个同名的覆盖方法:
class BasePage(object): log = LoggerClass() def __init__(self, driver, default_timeout=30, sleep=5): self.driver = driver self.default_timeout = default_timeout self.sleep = sleep def find_element(self, by, value, timeout=None, sleep=None): if timeout is None: timeout = self.default_timeout self.log.info("Find the element: ", (by, value)) if sleep is None: time.sleep(self.sleep) else: time.sleep(sleep)
#查看元素:等待,直到找到元素后才返回。如果超过timeout这个超时时间后依然没找到就会抛出异常 element = WebDriverWait(self.driver, timeout=timeout).until(lambda d: d.find_element(by, value)) return element
分类:
selenium4
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)