1.запустите концентратор на порту 4044
Код: Выделить всё
java -jar /ebst/wrangler/upla/bin/selenium-server-standalone-3.141.59.jar -role hub -port 4044
Код: Выделить всё
java -Dwebdriver.chrome.driver="~/chromedriver" -jar ~/selenium-server-standalone-3.141.59.jar -role node -hub http://hubURL:4044/grid/register -port 4045
Код: Выделить всё
import cucumber.api.java.Before;
import org.openqa.selenium.Platform;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import java.net.MalformedURLException;
import java.net.URL;
public class Test {
WebDriver driver;
@Before
public void setup() throws MalformedURLException {
String nodeURL = "http://hubURL:4044/wd/hub";
System.out.println("setting up");
DesiredCapabilities desiredCapabilities = DesiredCapabilities.chrome();
desiredCapabilities.setBrowserName("chrome");
desiredCapabilities.setPlatform(Platform.LINUX);
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments(
"--verbose",
"--headless",
"--disable-web-security",
"--ignore-certificate-errors",
"--allow-running-insecure-content",
"--allow-insecure-localhost",
"--no-sandbox",
"--disable-gpu");
chromeOptions.merge(desiredCapabilities);
driver = new RemoteWebDriver(new URL(nodeURL), chromeOptions);
System.out.println("setting up done");
}
}
org.openqa.selenium.WebDriverException: неизвестная ошибка: невозможно найти двоичный файл Chrome
(Информация о драйвере: chromedriver=74.0.3729.6 (255758eccf3d244491b8a1317aa76e1ce10d57e9-refs/branch-heads/3729@{#29}),platform=Linux 3.10.0-1062.el7.x86_64 x86_64) (ВНИМАНИЕ: сервер не предоставил никакой информации о трассировке стека)
Длительность команды или время ожидания: 16 миллисекунд
Информация о сборке: версия: «3.141.59», ревизия: «e82be7d358», время: «2018-11-14T08:25:53» Информация о системе: хост: 'ip-10-160-169-203.syd.non.c1.macquarie.com', ip: '10.160.169.203', os.name: 'Linux', os.arch: 'amd64', os.version: '3.10.0-1062.el7.x86_64', java.version: '1.8.0_181'
Информация о драйвере: driver.version: неизвестно Продолжительность или тайм-аут команды: 523 миллисекунды
Когда я возвращаюсь к серверу узла, отображается это сообщение.
22:44:05.604 INFO [ActiveSessionFactory.lambda$apply$11] — соответствующая фабрика org.openqa.selenium.grid.session.remote.ServicedSession$Factory (поставщик: org.openqa.selenium.chrome.ChromeDriverService)
Запуск ChromeDriver 74.0.3729.6 (255758eccf3d244491b8a1317aa76e1ce10d57e9-refs/branch-heads/3729@{#29}) на порту 3459
Разрешены только локальные подключения.
Защитите порты, используемые ChromeDriver и связанными платформами тестирования, чтобы предотвратить доступ злоумышленников. код.
[1567550645.675][SEVERE]: ошибка привязки(): невозможно назначить запрошенный адрес (99)
22:44:05.988 ИНФОРМАЦИЯ [ActiveSessionFactory.apply] — Возможности: {
"browserName": "chrome",
"goog:chromeOptions": {
"args": [
"--verbose",
"--headless",
"--disable-web-security",
"--ignore-certificate-errors",
"--allow-running-insecure-content",
"--allow-insecure-localhost",
"--no-sandbox",
"--port:4040",
"--disable-gpu"
],
"extensions": [
]
},
"platform": "LINUX",
"version": ""
Я понимаю Ошибка возникает из-за того, что в нашей компании были доступны только определенные порты, и ChromeDriver каждый раз запускается на случайном порту. Чтобы каждый раз указывать порт, на котором запускается этот ChromeDriver, я пробовал все виды спецификаций для моих ChromeOptions и RemoteWebDriver в коде Java, но тщетно.
Кто-нибудь еще сталкивался с этой проблемой? Если да, то не могли бы вы дать мне совет, что делать? Или, в более широком смысле, правильный ли это способ запуска сервера селена в EC2?
Любая помощь будет высоко оценена!
Подробнее здесь: https://stackoverflow.com/questions/577 ... river-runs
Мобильная версия