如何完全避免使用webdriver-manager?

时间:2018-11-17 02:25:13

标签: protractor webdriver-manager

我正在尝试在我的Angular项目中使用量角器进行e2e测试。我以前在路径中安装了selenium服务器和chromedriver,它对于非角度项目也能正常工作。我无权访问googleapis或webdriver-manager所需的任何其他CDN。

如何以任何方式运行不包含webdriver-manager的量角器测试?我想使用在全球范围内安装的工具。这有可能吗?

当我尝试运行ng e2e时收到错误消息:Error message: Could not find update-config.json. Run 'webdriver-manager update' to download binaries.

当我尝试运行webdriver-manager update时,会显示http 403。

在我的protractor.conf.js文件中,我具有directConnect:true和功能。browserName:'chrome'

我希望通过使用directConnect可以在我的路径中找到chromedriver,但事实并非如此。过去,我将使用selenium-webdriver npm模块启动chrome驱动程序的实例。

3 个答案:

答案 0 :(得分:1)

我认为最好的方法是去硒网格(Dockerized SeleniumJar based grid。其他选择是

directConnect: true 
量角器配置文件中的

答案 1 :(得分:1)

https://www.seleniumhq.org/download/

下载最新的硒独立服务器和chromedriver

创建批处理文件

java -Dselenium.LOGGER.level=WARNING -Dwebdriver.chrome.driver="C:/Program Files (x86)/Selenium/WebDrivers/ChromeDrivers/2.38/chromedriver.exe" -jar selenium-server-standalone-3.4.0.jar -port 4444

指定端口,Chromedriver位置和日志级别。

只需运行批处理文件,现在您就可以运行硒服务器。

在您的配置文件中,提及硒地址127.0.0.1:4444localhost

答案 2 :(得分:1)

您可以使用ng cli选项:webdriver-update使其不执行网络驱动程序更新,如下所示:

ng e2e --webdriver-update=false

但是ng e2e在本地软件包而不是全局软件包中使用webdriver,我认为在执行ng e2e --webdriver-update=false

之前,您需要一个npm脚本将预先准备好的webdriver复制到项目本地软件包中。