E-MAIL: vldkasat@mail.ru

SKYPE: samara-weblab.ru

TELEGRAM: @samara_weblab

Техническая поддержка осуществляется по будням с 09:00 до 19:00 по МСК. В выходные и праздничные дни - график свободный.

spyBrowser.session — управление текущей сессией

Управление группой сессии

Для получения/изменения информации по группе в API программы реализованы следующие методы:

  • spyBrowser.session.getGroupAsync() — получение текущей группы сессии
  • spyBrowser.session.setGroupAsync(newValue) — изменение текущей группы сессии

Пример получения текущей группы сессии:

spyBrowser.events.on("scriptLoadComplete", async function () {

var group = await spyBrowser.session.getGroupAsync();
alert("Сессия входит в группу " + group);

});

Примеры изменения текущей группы сессии:

spyBrowser.events.on("scriptLoadComplete", async function () {

await spyBrowser.session.setGroupAsync("Новая группа");

});

Управление комментариями к сессии

Для получения/изменения информации по комментариям в API программы реализованы следующие методы:

  • spyBrowser.session.getCommentsAsync() — получение комментариев к текущей сессии
  • spyBrowser.session.setCommentsAsync(newValue) — изменение комментариев к текущей сессии

Пример получения комментариев к текущей сессии:

spyBrowser.events.on("scriptLoadComplete", async function () {

var comments = await spyBrowser.session.getCommentsAsync();
alert("Комментарии к сессии " + comments);

});

Пример изменения комментариев к текущей сессии:

spyBrowser.events.on("scriptLoadComplete", async function () {

await spyBrowser.session.setCommentsAsync("Новые комментарии");

});

Комментарии к сессиям сами по себе являются удобным инструментом, который можно использовать для хранения любой информации при работе с сайтом. Среди этой информации могут быть логины, пароли, номера телефонов, платёжные реквизиты и другие важные данные. Переходим к следующему разделу и смотрим как можно это использовать.

Пишем скрипт авторизации на сайте olx.ua

В текущих версиях программы менеджер аккаунтов для сайта olx.ua не реализован, поэтому рассмотрим на примере этого сайта принцип авторизации с помощью скрипта.

Откроем в браузере страницу входа на сайт:

https://www.olx.ua/account/

Посмотрим на исходный код страницы:

Нас интересуют следующие элементы:

  • поле ввода логина input, id которого равен "userEmail"
  • поле ввода пароля input, id которого равен "userPass"
  • кнопка входа button, id которой равен "se_userLogin"

Соответственно обратиться к каждому элементу мы сможем следующим способом:

var loginInput = document.querySelector("input#userEmail");
var passInput = document.querySelector("input#userPass");
var button = document.querySelector("button#se_userLogin");
Для получения информации по методу document.querySelector обратитесь к документации/спецификации по JavaScript.

Но для начала напишем небольшую функцию, которая будет возвращать текст из нужной строки комментариев к сессии:

// Функция вернёт строку из комментариев к сессии с нужным номером
async function getCommentsFromLineAsync(line) {

// Получаем комментарии к сессии
var comments = await spyBrowser.session.getCommentsAsync();

// Разбиваем комментарии на массив строк, каждый элемент массива - отдельная строка
var array = comments.split("\r\n");

// Если кол-во строк недостаточное - возвращаем пустую строку
if (array.length < (line - 1))
return "";

// Возвращаем строку с нужным номером
return array[line];
}

Далее формируем весь исходный код скрипта авторизации, выглядеть он будет следующим образом:

spyBrowser.events.on("scriptLoadComplete", async function () {

// Функция вернёт строку из комментариев к сессии с нужным номером
async function getCommentsFromLineAsync(line) {

// Получаем комментарии к сессии
var comments = await spyBrowser.session.getCommentsAsync();

// Разбиваем комментарии на массив строк, каждый элемент массива - отдельная строка
var array = comments.split("\r\n");

// Если кол-во строк недостаточное - возвращаем пустую строку
if (array.length < (line - 1))
return "";

// Возвращаем строку с нужным номером
return array[line];
}

// Далее непосредственно сама авторизация

// Находим поле ввода логина
var loginInput = document.querySelector("input#userEmail");

// Если не нашли поле - завершаем работу скрипта
if (loginInput == null) {
spyBrowser.script.exit();
return;
}

// Вводим наш логин
loginInput.value = await getCommentsFromLineAsync(0);

// Находим поле ввода пароля
var passInput = document.querySelector("input#userPass");

// Если не нашли поле - завершаем работу скрипта
if (passInput == null) {
spyBrowser.script.exit();
return;
}

// Вводим наш пароль
passInput.value = await getCommentsFromLineAsync(1);

// Находим кнопку "Войти"
var button = document.querySelector("button#se_userLogin");

// Если не нашли кнопку - завершаем работу скрипта
if (button == null) {
spyBrowser.script.exit();
return;
}

// Кликаем по кнопке "Войти"
button.click();

// Сообщаем программе о том, что скрипт выполнил свою задачу
spyBrowser.script.exit();

});

Наш скрипт, после добавления в программу:

В поле «Сайт (домен)» мы указали — olx.ua, в поле «Название»Авторизация, «Описание» заполняем по своему усмотрению.

Проверяем скрипт, в комментарии первой строкой пишем наш логин от аккаунта, второй строкой пароль, запускаем скрипт:



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