webdriver-manager update-config.json 绝对路径

webdriver-manager update-config.json absolute paths

webdriver-manager\selenium\update-config.json 对于 "last" 和 "all" JSON 参数,我有绝对路径。我如何设置它们的相对路径?

我尝试了“..\”和“.\”,但没有用。有什么想法吗?

好的,这就是 update-config.json 的设计,它的用途以及它存在的原因。

在更新

期间写入更新-config.json

当用户调用 webdriver-manager update 时,二进制文件将被下载并重命名以包含版本号。这允许用户在其输出目录中拥有多个版本的二进制文件。以前大约 2015 年左右,该文件将被下载,ChromeDriver 名称的解压缩文件将只是 chromedriver(或 chromedriver.exe on Windows)。现在,我们重命名以包含版本。因此,如果我们下载 2.28 版,解压缩后的文件将为 chromedriver_2.28

量角器如何使用它

以前(~2015),localdirectConnect 的驱动程序提供商会对文件名做出假设。因此,对于我们之前的示例,它会假定文件是 chromedriver(或 Windows 上的 chromedriver.exe)。

附加版本号有几个问题:

  1. Protractor 不跟踪 webdriver-manager 下载的版本号
  2. 之前的假设是通过使用 config.json 作为版本号来实现的;但是,这不允许用户下载自定义版本。

所以我们会跟踪下载的 "latest" 版本。 webdriver-manager 下载的最后一个版本将被 Protractor 使用。 "all" 字段只是下载版本的列表。我相信当我们调用 "status" 时会使用这些值。

显然,如果删除 update-config.json 但二进制文件仍然存在,量角器将找不到 update-config.json。因此它将无法 运行 localdirectConnect 并且会抱怨/询问 运行 webdriver-manager update.

为什么不应该存储在 git

之前的评论询问有关存储此值的问题。这里的想法是,就像二进制文件和缓存文件一样,这个文件是临时的,不应该存储在 git 中。我实际上不理解用户想要 update-config.json 的相对路径的用例,但是如果您需要通过代码引用它,那么我会做类似 lib/driverProviders/local.ts#L43.

的事情

你可以试试这样更新,肯定会在node_modules/protractor

更新
$./node_modules/protractor/bin/webdriver-manager update