webdriver-manager update-config.json абсолютные пути

В webdriver-manager\selenium\update-config.json для «последних» и «всех» параметров JSON у меня есть абсолютные пути. Как я могу установить относительные пути к ним?

Я пробовал "..\" и ".\", но это не работает. Любые идеи?


person Николай Солдаткин    schedule 20.03.2017    source источник
comment
зачем вам это? Каков ваш вариант использования, который требует этого?   -  person cnishina    schedule 20.03.2017
comment
тестовый проект находится в репозитории svn. И когда другие тестировщики обновили его, они получили мои пути.   -  person Николай Солдаткин    schedule 21.03.2017
comment
Итак, как другие тестировщики планируют его использовать? Почему бы не открыть бинарный файл webdriver-manager из вашего package.json?   -  person cnishina    schedule 21.03.2017
comment
Я сталкиваюсь с той же проблемой. Файл update-config.json очень странный. Он появился после обновления моего webdriver-manager и не может быть удален. Я хочу загрузить этот проект на наш github, чтобы любой мог использовать его сразу после клонирования этого проекта.   -  person Bob Bai    schedule 22.03.2017
comment
update-config.json — это сгенерированный временный файл, и его не следует сохранять на github. Я не уверен, почему вы хотите сохранить эти данные в github. Как вы планируете использовать этот файл? Его основная цель — записать пути, чтобы Protractor мог легко подобрать их и запустить последние версии.   -  person cnishina    schedule 22.03.2017
comment
Если я удалю этот файл, возникнет ошибка при запуске транспортира: Ошибка: не найдено обновление-config.json. Запустите «обновление webdriver-manager», чтобы загрузить двоичные файлы.   -  person Bob Bai    schedule 22.03.2017
comment
Есть ли другая конфигурация, указывающая на этот файл?   -  person Bob Bai    schedule 22.03.2017


Ответы (2)


Итак, это дизайн update-config.json, для чего он используется и почему он здесь.

Напишите update-config.json во время обновления

Когда пользователь вызывает webdriver-manager update, двоичные файлы загружаются и переименовываются, чтобы включить номер версии. Это позволяет пользователю иметь несколько версий двоичного файла в своем выходном каталоге. Раньше примерно в 2015 году файл загружался, а имя несжатого файла для ChromeDriver было просто chromedriver (или chromedriver.exe в Windows). Теперь мы переименовываем, чтобы включить версию. Итак, если бы мы загрузили версию 2.28, несжатый файл был бы chromedriver_2.28

Как это используется Protractor

Ранее (~ 2015 г.) поставщик драйверов для local и directConnect делал предположения относительно имени файла. Итак, для нашего предыдущего примера предполагается, что файл имеет номер chromedriver (или chromedriver.exe в Windows).

Есть несколько проблем с добавлением номера версии:

  1. Protractor не отслеживает номера версий, загруженные webdriver-manager
  2. Предыдущие предположения работали с использованием config.json для номера версии; однако это не позволяло пользователю загружать пользовательские версии.

Итак, что происходит, так это то, что мы отслеживаем загруженную «последнюю» версию. Последняя версия, загруженная webdriver-manager, будет использоваться Protractor. Поле «все» было просто списком загруженных версий. Я считаю, что когда мы называем «статус», используются эти значения.

Очевидно, что если вы удалите update-config.json, но все еще имеете двоичные файлы, Protractor не найдет update-config.json. Поэтому он не сможет запустить local или directConnect и будет жаловаться/просить запустить webdriver-manager update.

Почему это не должно храниться в git

Предыдущие комментарии спрашивают о сохранении этого значения. Идея здесь в том, что, как и бинарные файлы и файлы кэширования, этот файл является временным и не должен храниться в git. На самом деле я не понимаю вариант использования, когда пользователь хочет иметь относительный путь к update-config.json, но если вам нужно сослаться на него через код, я бы сделал что-то вроде lib/driverProviders/local.ts#L43.

person cnishina    schedule 22.03.2017
comment
после того, как я удалил update-config.json, транспортир не может работать, как вы сказали. Он все еще пытался найти его. - person Bob Bai; 23.03.2017

Вы можете попробовать обновить его так, он обязательно обновит его в node_modules/protractor

$./node_modules/protractor/bin/webdriver-manager update
person Ashwini Koli    schedule 18.07.2018
comment
Я не знаю, почему за этот ответ не проголосовали. Почти 2 дня искали решение моей проблемы, похожее на это, и ни один из предоставленных советов здесь, в SO, не помог. Этот решил мою проблему. - person k.vincent; 25.11.2019
comment
Для пользователя Windows: node node_modules\protractor\bin\webdriver-manager update - person Hodossy Szabolcs; 15.01.2020
comment
этот решает мою проблему. Спасибо большое :) - person kishor sharma; 25.01.2021