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

时间:2017-03-20 18:22:53

标签: selenium protractor webdriver-manager

webdriver-manager\selenium\update-config.json代表"最后"和#34;所有" JSON参数,我有绝对路径。我如何设置它们的相对路径?

我试过了#34; .. \"和"。\"但它不起作用。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

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

在更新期间写入update-config.json

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

量角器如何使用

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

添加版本号有几个问题:

  1. 量角器不跟踪webdriver-manager
  2. 下载的版本号
  3. 以前的假设使用config.json作为版本号;但是,这不允许用户下载自定义版本。
  4. 所以会发生的事情是我们会跟踪最新的"版本已下载。下载由webdriver-manager下载的最新版本将由Protractor使用。 "所有" field只是下载的版本列表。我相信当我们打电话给#34; status"使用这些值。

    显然,如果删除update-config.json但仍有二进制文件,Protractor将找不到update-config.json。因此,它无法投放localdirectConnect并会投诉/要求运行webdriver-manager update

    为什么不应该将它存储在git

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

答案 1 :(得分:0)

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

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