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

Ник*_*кин 2 selenium protractor webdriver-manager

webdriver-manager\selenium\update-config.json对“过去”和“一切” JSON参数,我有绝对路径。我如何设置它们的相对路径?

我试过 "..\" 和 ".\" 但它不起作用。有任何想法吗?

cni*_*ina 5

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

更新时写入 update-config.json

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

量角器如何使用它

以前(~2015 年),驱动程序提供者localdirectConnect会对文件名做出假设。所以对于我们前面的例子,它会假设文件是chromedriver(或chromedriver.exe在 Windows 上)。

附加版本号有几个问题:

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

所以发生的事情是我们跟踪下载的“最新”版本。量角器将使用 webdriver-manager 下载的最后一个版本。“全部”字段只是下载版本的列表。我相信当我们称其为“状态”时,会使用这些值。

显然,如果您删除了update-config.json但仍有二进制文件,Protractor 将找不到update-config.json. 因此,它将无法运行localdirectConnect将抱怨/要求运行webdriver-manager update

为什么这不应该存储在 git 中

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


小智 5

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

$./node_modules/protractor/bin/webdriver-manager update
Run Code Online (Sandbox Code Playgroud)