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

Node.js(OS X)无法导入Chrome Options配置Headless Selenium问题

解决Selenium在OS X Node.js环境下Headless模式的导入问题

问题原因

在ES模块模式下(package.json中设置了"type": "module"),Node.js要求导入本地文件模块必须指定完整文件后缀,你之前的import chrome from 'selenium-webdriver/chrome'缺少.js后缀,导致模块找不到。

正确配置步骤

  1. 调整导入语句
    直接导入Chrome的Options类,带上完整的.js后缀:

    import { Builder, Browser, By, Key, until } from 'selenium-webdriver';
    import { Options } from 'selenium-webdriver/chrome.js';
    
  2. 配置Headless模式参数
    创建Options实例并添加Headless启动参数,建议使用新版Chrome的--headless=new(兼容性更好,功能更全):

    // 初始化Chrome配置
    const chromeOptions = new Options();
    chromeOptions.addArguments('--headless=new');
    // 可选:添加其他常用参数
    chromeOptions.addArguments('--window-size=1920,1080'); // 设置窗口大小
    
    // 构建Driver并应用配置
    let driver = await new Builder()
      .forBrowser(Browser.CHROME)
      .setChromeOptions(chromeOptions)
      .build();
    
    await driver.get(url);
    
  3. 额外检查

    • 确保Chrome浏览器版本与ChromeDriver版本匹配,版本不兼容可能导致运行失败
    • 如果使用CommonJS模块(未设置"type": "module"),则导入语句改为:
      const { Builder, Browser } = require('selenium-webdriver');
      const { Options } = require('selenium-webdriver/chrome');
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 22:57:06