Chrome 106及以上版本WebDriver.refresh()无响应问题求助
解决Chrome 106+/WebDriver refresh()无响应的问题
针对Chrome升级到106/107后,WebDriver调用driver.refresh()在页面闲置一段时间后无响应的问题,以下是几个实测有效的解决思路:
确保ChromeDriver与Chrome版本严格匹配
Chrome和ChromeDriver的版本必须完全对应(比如Chrome 107需要搭配ChromeDriver 107.x.x.x),版本不兼容是这类自动化操作异常的常见诱因。请核对当前Chrome版本,下载对应版本的ChromeDriver替换现有文件。替换refresh()的实现方式
放弃原生driver.refresh(),改用以下两种替代方案:- 执行JavaScript强制刷新页面:
driver.execute_script("location.reload(true);") # true参数表示强制从服务器重新加载,跳过缓存 - 模拟键盘F5按键操作:
from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.by import By driver.find_element(By.TAG_NAME, "body").send_keys(Keys.F5)
- 执行JavaScript强制刷新页面:
优化会话激活与超时设置
在调用刷新前,先执行简单操作激活会话,避免长时间闲置导致的会话异常:# 先获取页面标题激活会话 driver.title # 再执行刷新 driver.refresh()同时可以调整Driver的超时参数,避免会话超时:
driver.set_page_load_timeout(30) driver.set_script_timeout(30)调整Chrome启动参数
初始化ChromeOptions时添加额外参数,规避页面闲置后的异常状态:chrome_options = webdriver.ChromeOptions() chrome_options.add_argument("--disable-blink-features=AutomationControlled") chrome_options.add_argument("--disable-extensions") chrome_options.add_argument("--no-sandbox") chrome_options.add_argument("--disable-dev-shm-usage") # 禁用页面闲置检测,避免休眠 chrome_options.add_argument("--disable-features=IdleDetection")
内容的提问来源于stack exchange,提问作者hmoriel
相关产品推荐
相关产品推荐

