我怎样才能完全避免 webdriver-manager?

How can I completely avoid webdriver-manager?

我正在尝试在我的 Angular 项目中使用量角器进行端到端测试。我之前在我的路径中安装了 selenium 服务器和 chrome 驱动程序,它适用于非 angular 项目。我无权访问 googleapis 或 webdriver-manager 所需的任何备用 cdns。

我如何 运行 量角器测试 w/o 以任何方式涉及 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 和 capabilities.browserName: 'chrome'

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

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

directConnect: true 

在你的量角器配置文件中。

https://www.seleniumhq.org/download/ 下载最新的 selenium 独立服务器和 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 位置和日志级别。

只是 运行 批处理文件,现在你有了 selenium 服务器 运行ning。

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

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

ng e2e --webdriver-update=false

但是ng e2e使用本地包中的webdriver而不是全局包,我认为你需要一个npm脚本在执行之前将预先准备好的webdriver复制到项目本地包中ng e2e --webdriver-update=false