Браузерная автоматизация с Selenium

Автоматизация браузера – это функция, которая позволяет автоматизировать процессы в Интернете. Это может быть так же просто, как простое нажатие кнопки для сложных автоматизированных систем входа и регистрации.

Автоматизация браузера Incogniton использует веб-драйвер selenium. Кроме того, мы также поддерживаем автоматизацию Puppeteer.

Поддерживаемые языки

На данный момент поддерживается только python. Текущая реализация требует, чтобы перед запуском профиля в python были установлены некоторые дополнительные параметры. Другие языки, такие как Java, находятся в разработке.

Selenium с инкогнитоном

Для связи с интеграцией Selenium в Incogniton можно установить два порта.
Один – это общий порт API, а другой – конкретный порт концентратора селена.
Порт API по умолчанию – 35000, а порт селена по умолчанию – 4444.
Значения порта можно изменить, выполнив следующие действия:

  • Перейдите в C: \ Users \ %username% \ incogniton
  • Откройте auth.json
  • Измените seleniumPort и apiPort на желаемые номера портов

Пример Python

from selenium import webdriver
from ast import literal_eval
import requests

incogniton_profile_id = 'xxxxx-xxxx-xxxx-xxxx-xxxxxxxx'
incogniton_url = 'http://127.0.0.1:35000/automation/launch/python/'+incogniton_profile_id

resp = requests.get(incogniton_url)
incomingJson = resp.json()

python_dict = literal_eval(incomingJson['dataDict'])
driver = webdriver.Remote(
			command_executor = incomingJson['url']
			,options=webdriver.ChromeOptions()))

driver.get("https://www.incogniton.com")

Puppeteer с Incogniton

Пример NodeJS

const puppeteer = require('puppeteer')
var request = require("request")
var incognitonProfileID = 'xxxxx-xxxx-xxxx-xxxx-xxxxxxxx';
var url = "http://localhost:35000/automation/launch/puppeteer/" + incognitonProfileID;

function sleepFor(sleepDuration) {
  var now = new Date().getTime();
  while (new Date().getTime() < now + sleepDuration) {}
}

function actions(body) {
  sleepFor(3000); //Some time for the browser to actually start.

  const screenshot = 'screenshot.png'
  try {
    (async () => {
      const browserURL = body.puppeteerUrl;
      const browser = await puppeteer.connect({
        browserURL
      });
      const page = await browser.newPage()
      await page.goto('https://hotmail.com')
      await page.screenshot({
        path: screenshot
      })
      await browser.close()
      console.log('See screenshot: ' + screenshot)
    })()
  } catch (err) {
    console.error(err)
  }
}

request({
  url: url,
  json: true,
  headers: {
    'Content-Type': 'application/json'
  }
}, function (error, response, body) {

  if (!error && response.statusCode === 200) {
    actions(body)

  }
})

 

Работает на BetterDocs