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

安装selenium-webdriver 3.6.0后运行代码遇async execute错误求助

解决Selenium-WebDriver 3.6.0在Node.js 7.1.0下的SyntaxError问题

问题根源

你碰到的SyntaxError: Unexpected identifier错误,核心原因是Selenium WebDriver 3.6.0的源码中使用了async/await语法,但你的Node.js版本是V7.1.0——这个版本里async/await还属于实验性特性,默认没有启用稳定支持,所以Node无法识别这个语法,抛出了错误。

解决方案

这里提供两种可行的解决方式,推荐优先选择第一种:

方案1:升级Node.js版本(推荐)

从Node.js 8.0.0开始,async/await正式成为稳定特性,不需要任何额外配置就能直接运行相关代码。你可以升级到Node.js的LTS长期支持版本(比如8.x、10.x或者更高的稳定版本),这样不仅能解决当前的语法错误,还能获得更好的性能、兼容性和安全性。

升级完成后,重新运行你的代码,应该就能正常启动Chrome并访问Google了。

方案2:运行代码时添加实验性特性参数

如果你暂时不想升级Node.js,可以在执行代码时加上--harmony-async-await参数,手动启用async/await的实验性支持:

node --harmony-async-await library.js

⚠️ 注意:实验性特性可能存在潜在的兼容性问题,长期来看还是升级Node版本更稳妥。

额外优化建议

  1. 清理冗余依赖:你安装了webdriver和selenium-webdriver两个包,其实后者才是官方的Selenium客户端,前者是另一个独立包,可能会造成冲突。可以卸载冗余的webdriver:
npm uninstall webdriver
  1. 完善代码变量声明:你的代码中By和until没有用var/let/const声明,虽然在全局环境下能运行,但容易引发变量污染问题,建议修改为:
var webdriver = require('selenium-webdriver');
var driver = new webdriver.Builder().forBrowser('chrome').build();
var By = webdriver.By;
var until = webdriver.until;
driver.get('http://www.google.co.in');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:36:50