You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chrome --headless模式下Selenium代码失效,普通模式运行正常

问题原因
  • Instagram反机器人策略拦截:平台会精准识别使用默认--headless参数启动的Chrome浏览器,判定为自动化操作。普通模式下浏览器特征符合正常用户行为不会被拦截,无头模式下登录后不会弹出后续的通知提示弹窗,甚至直接返回人机验证、登录失败页面,导致你定位的Not Now按钮不存在,触发超时错误。
  • 浏览器特征差异:默认无头模式的User-Agent、窗口分辨率、设备指纹和普通Chrome存在明显差异,很容易被平台指纹检测系统识别。
  • 无头模式版本兼容性问题:Chrome 96及以上版本存在新旧两套无头模式,旧版无头模式(默认的--headless)更容易被网站拦截,新版无头模式行为和普通Chrome更接近,兼容性更好。
解决方法

第一步:修改Chrome启动参数

替换原有Chrome配置部分的代码,添加反检测配置:

def instagram_login():
    chrome_options = webdriver.ChromeOptions()
    # 用新版无头模式替换旧版
    chrome_options.add_argument("--headless=new")
    # 手动设置普通Chrome的User-Agent,可在普通Chrome地址栏输入chrome://version/查询本机UA后替换
    chrome_options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36")
    # 移除自动化控制标记
    chrome_options.add_argument("--disable-blink-features=AutomationControlled")
    chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
    chrome_options.add_experimental_option("useAutomationExtension", False)
    # 固定窗口分辨率,避免元素加载错位
    chrome_options.add_argument("--window-size=1920,1080")
    # Linux环境下必要参数,解决资源限制问题
    chrome_options.add_argument("--no-sandbox")
    chrome_options.add_argument("--disable-dev-shm-usage")

    driver = webdriver.Chrome("/home/chromedriver", options=chrome_options)
    # 覆盖webdriver特征,进一步避免检测
    driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")

第二步:优化按钮定位逻辑

部分场景下登录后不会弹出通知提示框,添加异常捕获避免超时中断程序:

time.sleep(2)
try:
    wait = WebDriverWait(driver, 10)
    wait.until(EC.element_to_be_clickable((By.XPATH, "//button[text()='Not Now']"))).click()
except TimeoutException:
    # 未找到按钮直接跳过,不影响后续逻辑
    pass

第三步:排查辅助

如果修改后仍然报错,可以在点击登录按钮后添加截图代码,确认无头模式下实际页面加载状态:

loginbt[1].click()
time.sleep(5)
# 保存截图排查是否出现人机验证、登录失败等异常页面
driver.save_screenshot("login_status.png")

内容的提问来源于stack exchange,提问作者pkk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 05:57:03