Сценарии взаимодействия домашней страницы - PullRequest
0 голосов
/ 29 марта 2019

Немного предыстории:

Оператор шведского поезда SJ перечисляет довольно много поездок, которые невозможно забронировать из-за изменения их расписания из-за отслеживанияпланирование технического обслуживания.

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

Это, как вы понимаете, я считаю неадекватным.Такая утомительная задача должна и, вероятно, могла бы быть автоматизирована.

Моя попытка автоматизации до сих пор:

slimerjs text output

Мне несколько удалось получить соответствующие элементы с домашней страницы, как видно на рисунке.

Команда разбита:

SLIMERJSLAUNCHER=~/not_applications/Firefox.app/Contents/MacOS/firefox \
slimerjs \
  --headless \
  -profile ~/Library/Application\ Support/Firefox/Profiles/43t6k27y.ver56 \
script/save_table.js \
'https://www.sj.se/en/home.html\#/tidtabell/G%25C3%25B6teborg%2520C/Stockholm%2520Central/enkel/avgang/20190606-1200/avgang/20190606-1500/VU--///0//'

И save_table.js выглядит следующим образом:

var system = require('system');
var page = require('webpage').create();

page.open(system.args[1], function()
{
    var rows = page.evaluate(function(){
      //document.getElementsByClassName('form-group--checkbox--label')[7].click();
      return document.getElementsByClassName('timetable__row--clickable');
    });
    console.log("===> BEGIN");
    for (i=0; i<rows.length; i++){
      console.log(rows[i].innerText);
      console.log("====");
    };
    phantom.exit();
});

Проблемы:

Запуск SlimerJS был немного сложным, поскольку он работает только с версиями Firefox <60.Это заставляет меня думать, что мой подход немного устарел. </p>

Как видно из JavaScript, я пытался установить флажок для Нон-стоп маршрутов (который работает в браузереконсоль), но это полностью нарушает slimerJS.

Как я могу заставить страницу отфильтровывать безостановочные маршруты перед перечислением поездок?

...