【问题标题】:SyntaxError: Use of const in strict mode?SyntaxError:在严格模式下使用 const?
【发布时间】:2016-08-15 20:27:22
【问题描述】:

我正在尝试使用 selenium-webdriver 登录 facebook.com。

var webdriver = require('selenium-webdriver'),
    By = require('selenium-webdriver').By,
    until = require('selenium-webdriver').until;

var driver = new webdriver.Builder()
    .forBrowser('firefox')
    .build();

driver.get('https://www.facebook.com/login');
driver.findElement(By.id('email')).sendKeys('****');
driver.findElement(By.id('pass')).sendKeys('*****');
driver.findElement(By.id('loginbutton')).click();

driver.findElement(By.linkText('Settings')).then(function(element) {
  console.log('Yes, found the element');
}, function(error) {
  console.log('The element was not found, as expected');
});
driver.quit();

报错:

/home/shubham/node_modules/selenium-webdriver/index.js:25
const builder = require('./builder');
^^^^^
SyntaxError: Use of const in strict mode.
    at Module._compile (module.js:439:25)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/home/shubham/Music/amazon_login/test_22_4_16/sel_login.js:1:79)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)

node --versionv0.10.37

npm --version1.4.28

protractor --version 版本 3.2.2

selenium-webdriver@2.53.1

【问题讨论】:

标签: node.js selenium selenium-webdriver


【解决方案1】:

更新nodejs 解决了这个问题:

npm cache clean -f
sudo npm install -g n
sudo n stable
node --version
node app.js

您必须以 root/管理员身份运行第二个和第三个命令。

【讨论】:

  • 我注意到您使用nodejs 作为命令行。应该是node。你能打印“node --version”吗?
  • node --version && nodejs --version && whereis node && /usr/local/bin/node --version && sudo mv node node_0_12_2 && whereis nodejs && sudo ln -s /usr/bin/ nodejs 节点
  • 上述解决方案仅更新节点版本,该节点版本会将节点版本从 v0.10.37 更新到更新版本,即 4 或更高版本,在严格模式下支持 const,因此错误将得到解决。可以在stackoverflow.com/questions/43932038/… 下找到合适的解决方案
  • 更新 NodeJS 解决了这个问题。但是,在运行sudo npm install -g n 之后,您可能会收到以下错误:npm: relocation error: npm: symbol SSL_set_cert_cb, version libssl.so.10 not defined in file libssl.so.10 with link time reference 为了克服此错误,请尝试使用以下命令升级 openssl:sudo yum update openssl
【解决方案2】:

n stable 不会对我有用。另一方面,

nvm install stable

这实际上让我得到了最后一个 nodejs 版本。显然n stable 不会通过v0.12.14 对我来说。我真的不知道为什么。

注意:nvm 是节点版本管理器,您可以从its github page 安装它。感谢@isaiah 指出nvm 不是已知命令。

【讨论】:

    【解决方案3】:

    对我来说解决起来更简单,只需访问Node 网站,获取并安装 LTS 版本。

    【讨论】:

      【解决方案4】:

      更新您的node 即可解决此问题。

      【讨论】:

        【解决方案5】:

        更新 NodeJS 解决了这个问题。 但是,在运行sudo npm install -g n 之后,您可能会收到以下错误:

        npm: relocation error: npm: symbol SSL_set_cert_cb, version libssl.so.10 not defined in file libssl.so.10 with link time reference
        

        为了克服此错误,请尝试使用以下命令升级 openssl:

        sudo yum update openssl
        

        【讨论】:

          【解决方案6】:

          该错误意味着您的节点的发布量低于需要。 仔细更新您计算机的节点。

          【讨论】:

            猜你喜欢
            • 2014-05-01
            • 2017-10-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-01-31
            相关资源
            最近更新 更多