Я запускаю тесты с использованием TestNG, хрома и селена, в Java, на двух машинах:
- мой собственный ноутбук
- Ма c Mini У меня нет у меня есть физический доступ, к которому я подключаюсь через S SH, который имеет ту же структуру проекта, что и проект на моем ноутбуке.
Обе машины работают за одним и тем же корпоративным прокси.
Проблема, с которой я сталкиваюсь, заключается в следующем:
- , когда тесты на моем компьютере проходят гладко, когда я выполняю команду для их запуска на Ma c Mini, выполнение останавливается при сообщении Selenium WebDriver для навигации по любому указанному URL с использованием
driver.navigate().to(url)
или driver.get(url)
; вызывая зависание программы без каких-либо исключений, по существу оставаясь на удержании.
Код напоминает следующее:
в драйвере @BeforeClass beforeClass () инициализируется экземпляром ChromeDriver с использованием ChromeOptions. Среди других настроек я добавляю следующие аргументы в ChromeOptions, такие как chromeOptions.addArguments(options)
: где options
- это такие вещи, как --disable-web-security, --allow-running-insecure-content, --allow-insecure-localhost
и , что наиболее важно: --proxy-server=address:port
(например, --proxy-server = 172.26 .44.146: 3128).
в @BeforeMethod beforeMethod () после проверки, что драйвер не null
и что URL-адрес является допустимым, я выполняю что-то похожее на следующий стилизованный код:
try {
log.debug("Navigating to: " + url);
driver.navigate().to(url);
log.debug("Navigated to url: " + driver.getCurrentUrl());
} catch (Exception e) {
log.error("Unable to navigate at page: " + url.toString());
throw e;
}
Как я уже говорил, при запуске теста на Ma c Mini через S SH с использованием командной строки аналогично: java -cp WORKSPACE org.testng.TestNG testng.xml
код прекращает выполнение и останавливается на log.debug("Navigating to: " + url);
, по существу не производя другой вывод и вынуждая меня вручную остановить выполнение теста.
В качестве дополнительной информации, тесты выполняются с использованием хромовой версии 72.0.3609.0. ChromeOptions также получает следующий параметр прокси-сервера (например, chromeOptions.setProxy(p);
), где p - это Proxy
с
p.setProxyType(ProxyType.MANUAL);
p.setAutodetect(false);
Я подозреваю, что проблема с прокси-сервером (и я сомневаюсь, что я правильно предварительно настроил программу ), но, честно говоря, я озадачен тем фактом, что тот же самый скрипт запускается локально на моей машине и не может запускаться локально на Ma c Mini, когда тесты запускаются через S SH.