node.js - WebDriver JS 强制使用本地“selenium-webdriver”
问题描述
我之前使用 'npm install -g selenium-webdriver 安装了 selenium,所以我所有的项目都使用全局节点模块(在 mac os 上设置)。有效!然后我尝试了不同的 JavaScript 测试自动化框架。现在我想从头开始,但是当我按照与以前相同的步骤为 webdriverJs 自动化安装 selenium 时,它不起作用。
#我采取的步骤:#
- 运行 npm init(我没有更改 package.json 中的任何值)
- 运行 sudo npm install -g selenium-webdriver
- 运行 sudo npm install -g chromedriver
- 运行 sudo npm install -g geckodriver
- 验证是否在 /usr/local/lib/node_modules 中成功创建了所有模块
- 通过运行以下简单脚本来验证是否使用了全局模块:
var webdriver = require('selenium-webdriver'),
//By = webdriver.By,
//until = webdriver.until;
var driver = new webdriver.Builder().forBrowser('chrome').build();
driver.get('https://www.google.com/');
#结果#
Error: Cannot find module 'selenium-webdriver'
虽然我了解错误正在传达什么(运行 npm install selenium-webdriver 以将节点模块与驱动程序放在项目内),但我的意图是全局使用 selenium-webdriver(加上 chromedriver、geckodriver)进行更多项目。
我怎样才能做到这一点并强制项目在全球而不是本地使用硒?
谢谢你。
解决方案
尝试清除node_modules
文件夹并运行npm install
.
推荐阅读
- c++ - 为什么 ^z 有两个 ASCII 码?
- apache-spark - Pyspark 数据帧写入和读取更改架构
- arrays - 如何在 Swift 5 中从数组中获取值
- python - 对位置历史中具有相同地址的位置进行分组,同时保持位置顺序
- java - java - 如何在没有中间提交的情况下查看两个提交之间的更改?
- c++ - 将数组元素中的双精度值返回到控制台
- .net - 我创建了一个接受命令行参数/拖放的 VB.NET 表单应用程序。我如何让它与控制台对话?
- python - 烧瓶表单没有验证
- python - 如何使用 Selenium TimeoutException 修复未绑定的本地错误
- javascript - 在 ReactJS 中使用按钮过滤数据