At webdriver-manager\selenium\update-config.json
for "last" and "all" JSON parameters, I have absolute paths. How I can set relative paths to them?
I tried "..\" and ".\" but it's not working. Any ideas?
Alright, so this is the design of update-config.json
, what it is used for and why it is there.
When a user calls webdriver-manager update
, the binaries are downloaded and renamed to include the version number. This allows a user to have multiple versions of a binary in their output directory. Previously around ~2015, the file would be downloaded and the uncompressed file for ChromeDriver name would just be chromedriver
(or chromedriver.exe
on Windows). Now, we rename to include the version. So if we downloaded version 2.28, the uncompressed file would be chromedriver_2.28
Previously (~2015), the driver provider for local
and directConnect
would make assumptions on the filename. So for our previous example, it would assume that the file was chromedriver
(or chromedriver.exe
on Windows).
There are a couple of issues with appending a version number:
So what happens is that we keep track of the "latest" version downloaded. The last version downloaded by webdriver-manager will be used by Protractor. The "all" field was just a list of versions downloaded. I believe when we call "status" these values are used.
Obviously, if you delete the update-config.json
but still have the binaries, Protractor will not find the update-config.json
. Therefore it won't be able to run local
or directConnect
and will complain / ask to run webdriver-manager update
.
Previous comments ask about storing this value. The idea here is that, just like the binaries and caching files, this file is temporary and should not be stored in git. I actually do not understand the use case where a user wants to have a relative path to the update-config.json
but if you need to reference it via code then I would do something like lib/driverProviders/local.ts#L43.