Подключение к гекодриверу с селеном JS - PullRequest
0 голосов
/ 07 октября 2019

Я не эксперт по Selenium, поэтому я могу кое-что здесь упустить.

  • Одна из программ в корпорации запускает Firefox с Geckodriver.
  • Я бы хотелдля подключения / подключения к этому браузеру из моего кода JavaScript.

Я знаю порт, с которого запускается веб-сервер, и идентификатор сеанса.

Я пытаюсь подключиться из JS:

const webdriver = require('selenium-webdriver')

void async function() {
    let driver = await new webdriver.Builder().forBrowser('firefox').usingServer('http://localhost:55849/').build();

    await driver.get('http://www.google.com/ncr');
    await driver.findElement(By.name('q')).sendKeys('webdriver');
    await driver.findElement(By.name('btnG')).click();
    await driver.wait(until.titleIs('webdriver - Google Search'), 1000);

    driver.quit();
}();

Соединение не установлено. Я могу подумать, что этот код пытается запустить новый экземпляр.

Есть сообщение об ошибке:

SessionNotCreatedError: Session is already started

Есть идеи, как подключиться к существующему? И контролировать это?

Я пытался все из документов: https://www.npmjs.com/package/selenium-webdriver

Я даже пытался подключиться http://localhost:55849/wd/hub, но затем я получил WebDriverError: HTTP method not allowed ошибка

1 Ответ

0 голосов
/ 07 октября 2019

Используйте selenium-webdriver / http

const webdriver = require('selenium-webdriver')
const http= require('selenium-webdriver/http')

let sessionId = '9aad751d-eb9b-4c92-92f3-298c733f6ec7';
let url = 'http://localhost:57538';

let driver = new webdriver.WebDriver(
    sessionId,
    new http.Executor(Promise.resolve(url)
        .then(
            url => new http.HttpClient(url, null, null))
    )
);
...