Seleniumbase获取page_source异常求助(Chromium 130)
解决Chromium 130下Seleniumbase UC模式page_source返回不完整的问题
针对Chromium 130发布后,Seleniumbase启用UC模式(uc_cdp=True)+无痕模式时,driver.page_source仅返回极简HTML的问题,可尝试以下解决方案:
排查无痕模式兼容性
去掉incognito=True参数,测试是否是无痕模式与UC模式的冲突:driver = Driver(uc_cdp=True) driver.get("https://****.com/") print(driver.page_source)若此时能获取完整源码,说明Chromium130下无痕模式和UC模式的CDP配置存在冲突,后续可改用UC模式自带的环境隔离方式替代无痕。
等待页面完全渲染
页面视觉正常但源码未加载,大概率是异步渲染未完成,添加显式等待:from seleniumbase import Driver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC driver = Driver(uc_cdp=True, incognito=True) driver.get("https://****.com/") # 替换成页面核心元素的定位器,比如特定class或id WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.CLASS_NAME, "main-content")) ) print(driver.page_source)也可以用Seleniumbase自带的页面就绪等待:
driver.wait_for_page_ready() print(driver.page_source)调整UC模式CDP配置
Chromium130可能修改了CDP默认行为,手动添加CDP命令修复:driver = Driver(uc_cdp=True, incognito=True) # 启用Page域并调整下载行为(按需调整) driver.execute_cdp_cmd("Page.enable", {}) driver.execute_cdp_cmd("Page.setDownloadBehavior", {"behavior": "allow"}) driver.get("https://****.com/") driver.wait_for_page_ready() print(driver.page_source)升级Seleniumbase到最新版
执行命令升级到适配Chromium130的版本:pip install --upgrade seleniumbase升级后重新测试原有代码。
用CDP命令直接获取DOM
若以上方法都无效,通过CDP的Page.getDocument命令直接抓取完整页面内容:driver = Driver(uc_cdp=True, incognito=True) driver.get("https://****.com/") driver.wait_for_page_ready() result = driver.execute_cdp_cmd("Page.getDocument", {}) full_html = result['root']['children'][0]['children'][0]['nodeValue'] print(full_html)
内容的提问来源于stack exchange,提问作者tromotixc
相关产品推荐
相关产品推荐

