Альтернатива Chromedriver - PullRequest
       40

Альтернатива Chromedriver

0 голосов
/ 04 апреля 2020

Я сделал несколько сценариев для своей работы бухгалтером, которые автоматизируют многие из наших повседневных задач, таких как загрузка некоторых PDF-файлов и отправка их по почте. Эти скрипты сделаны с Ruby, Watir и chromedriver. Основная проблема, которая, как я думал, у меня возникла, - это изменение сайтов, но это было не так проблематично c, как обновления chrome.

Каждый раз, когда происходило обновление chrome, они меняли флаги, поэтому я не мог загрузить pdf-файлы, мне приходилось находить подходящие флаги, и это было ужасно.

Мне удается решить вышеописанное проблема заключается в создании нового профиля из chrome для каждого сценария, затем изменения настроек и их сохранения вручную.

Но есть как минимум 50 сценариев, и каждому нужны разные настройки для хроматографа , это начинает действовать мне на нервы.

Кроме того, я развернул машину с Ubuntu, чтобы все было более автоматизировано и не запускал вручную сценарий с моей машины windows. Даже там хром продолжает получать те же самые изменения, и в конце концов, когда обновляется, он ломает все.

Я думал, что фантом js мог бы быть хорошим, но я вижу, что он мертв.

Так главный вопрос: знаете ли вы какой-нибудь драйвер, который я могу использовать, который не имеет всех cr@p, которые есть у chrome?

Спасибо

1 Ответ

0 голосов
/ 22 апреля 2020

Всем, кто имеет дело с Watir и Chromedriver или Chrome в целом. Кажется, что pref directory_upgrade должен быть установлен для того, чтобы chromedriver мог загрузить файл. Также для тех, кто использует watir. В последних версиях это

   prefs = {
  download: {
    prompt_for_download: false,
    default_directory: path,
  },
   plugins: {
    always_open_pdf_externally: true
  },
}

должно быть изменено следующим образом

    prefs = {
  download: {
    "prompt_for_download" => false,
    "directory_upgrade"   => true,
    "default_directory" => path,
  },
   plugins: {
    "always_open_pdf_externally" => true
  },
}
...