webdriver-manager\selenium\update-config.json
对于“最后一个”和“所有”JSON 参数,我有绝对路径。我如何设置它们的相对路径?
我尝试了“..\”和“.\”,但它不起作用。有任何想法吗?
webdriver-manager\selenium\update-config.json
对于“最后一个”和“所有”JSON 参数,我有绝对路径。我如何设置它们的相对路径?
我尝试了“..\”和“.\”,但它不起作用。有任何想法吗?
好的,这就是 的设计update-config.json
,它的用途以及它存在的原因。
当用户调用webdriver-manager update
时,会下载二进制文件并重命名以包含版本号。这允许用户在其输出目录中拥有多个版本的二进制文件。以前大约在 2015 年左右,该文件将被下载,ChromeDriver 名称的未压缩文件将只是chromedriver
(或chromedriver.exe
在 Windows 上)。现在,我们重命名以包含版本。因此,如果我们下载 2.28 版,未压缩的文件将是chromedriver_2.28
以前(~2015 年),驱动程序提供程序local
会directConnect
假设文件名。因此,对于我们之前的示例,它会假设该文件是chromedriver
(或chromedriver.exe
在 Windows 上)。
附加版本号有几个问题:
因此,我们会跟踪下载的“最新”版本。webdriver-manager 下载的最后一个版本将被 Protractor 使用。“all”字段只是下载的版本列表。我相信当我们称其为“状态”时,会使用这些值。
显然,如果您删除了update-config.json
但仍有二进制文件,Protractor 将找不到update-config.json
. 因此它将无法运行local
,或者directConnect
会抱怨/要求运行webdriver-manager update
。
先前的评论询问有关存储此值的问题。这里的想法是,就像二进制文件和缓存文件一样,这个文件是临时的,不应该存储在 git 中。我实际上不理解用户想要拥有相对路径的用例,update-config.json
但如果您需要通过代码引用它,那么我会做类似lib/driverProviders/local.ts#L43的事情。
可以尝试这样更新,肯定会在node_modules/protractor中更新
$./node_modules/protractor/bin/webdriver-manager update