我需要在没有Internet访问权限的机器上安装和使用Protractor / Selenium。
为此,我尝试下载所有需要的文件并将其复制到目标计算机。
在我的计算机上(可以访问Internet)
我使用以下命令安装了Protractor和Selenium webdriver:
npm install -g protractor
webdriver-manager update
在目标计算机上(无法访问Internet)
我将{em>所有文件从npm config get prefix
返回的位置复制到没有Internet访问权限的计算机上。
然后我在没有互联网访问权限的机器上执行了以下命令:
npm --cache-min 9999999 install -g protractor
似乎成功了。
但是,当我尝试执行webdriver-manager start
命令时,收到以下错误消息:
events.js:183 扔掉//未处理的错误'事件 ^
错误:getaddrinfo ENOTFOUND chromedriver.storage.googleapis.com chromedriver.storage.googleapis.com:443 在errnoException(dns.js:50:10) 在GetAddrInfoReqWrap.onlookup [as oncomplete](dns.js:92:26)
执行webdriver-manager update
时收到同样的错误(在这种情况下:webdriver-manager start: Error: connect ETIMEDOUT)
问题
我做错了什么?如何在没有Internet访问权限的情况下在机器上正确设置Protractor和webdriver?
答案 0 :(得分:2)
因为webdriver-manager start
将通过互联网查找selenium-server.jar和webdriver二进制文件的最新版本号,无论它们是否已存在于本地。
但是webdriver-manager
没有提供cmd选项来禁用查找。
快速方法是直接在webdriver-manager start
后面运行java cmd以跳过查找。
的java -Dwebdriver.chrome.driver = C:\工具\ NPM-全球\ node_modules \ webdriver的经理\硒\ chromedriver_2.38.exe -Dwebdriver.gecko.driver = C:\工具\ NPM-全球\ node_modules \ webdriver的经理\硒\ geckodriver,v0.20.1.exe -jar C:\ Tools \ npm-global \ node_modules \ webdriver-manager \ selenium \ selenium-server-standalone-3.11.0.jar -port 4444
复杂的方法是更改webdriver-manager
代码或在本地设置镜像并使用cmd选项:--alternate_cdn
并将其指向您的本地镜像网址。 (我没有验证这可以工作,阅读一些源代码后得到它)