Как установить порт ChromeDriver в Canopy (библиотека селена)?

Я использую Canopy в контейнере Docker и хотел бы указать порт 4444 вместо последнего случайного, назначенного при вызове canopy.core.start из-за множественных ошибок подключения. Ошибка: ConnectFailure (Соединение отклонено) - или ошибка запустить драйвер.

let chromeOptions = OpenQA.Selenium.Chrome.ChromeOptions()
chromeOptions.AddArgument("--no-sandbox")
chromeOptions.AddArgument("--disable-extensions")
chromeOptions.AddArgument("--disable-gpu")
chromeOptions.AddArgument("--disable-client-side-phishing-detection")
chromeOptions.AddArgument("--disable-suggestions-service")
chromeOptions.AddArgument("--safebrowsing-disable-download-protection")
chromeOptions.AddArgument("--no-first-run")
chromeOptions.AddArgument("--allow-insecure-localhost");
chromeOptions.AddArgument("--port=4444"); // Not taking effect; see below
let chromeNoSandbox = ChromeWithOptions(chromeOptions)
canopy.configuration.chromeDir <- "."
start chromeNoSandbox

Ошибка: ConnectFailure (соединение отклонено) <--- Несколько из них в контейнере Docker

Запуск ChromeDriver 2.35.528139 (47ead77cb35ad2a9a83248b292151462a66cd881) через порт 36479 <- как это указать?

0 ответов

Нет простого способа сделать это!

Как Canopy запускает экземпляр WebDriver, вызываяOpenQA.Selenium.Chrome.ChromeDriverService.CreateDefaultService("<path to the chromedriver executable on runner machine>"). (Где, конечно, это верно для всех остальных браузеров).

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

ты мог бы попробовать сделать что-нибудь вроде let a = OpenQA.ChromeDriverService.CreateDefaultService("<path>") с последующим a.Port <- <port number>, но я не знаю, как использовать полученныйWebDriverService как исполнитель наших тестов.

В port=4444 немного на ChromeOptionsне работает, потому что это не вариант Chrome (или браузера, в общем). Это WebDriver.

Я разместил вопрос на трекере проекта. Надеюсь, скоро мы получим ответ...

Другие вопросы по тегам