Как запустить Chrome (как в обычном режиме, так и в режиме инкогнито) и открыть URL на удаленном ПК (узле) с помощью Selenium Grid в Java?
Я пробую Selenium Grid на Java и просто хочу запустить Chrome в обоих
- нормальный режим и
- режим инкогнито
в удаленном ПК (узел) и откройте google.com
Я настроил соединение узла узла. Я попробовал этот код, но он кажется неправильным.
- Любое руководство, как это сделать?
- Как пользоваться
capability.setCapability()
? Я нашел пример для запуска IE и просто заменил слово InternetExplorer на Chrome... Не работает.
Благодарю.
Не работает код:
System.setProperty("webdriver.chrome.driver" , "C:/Users/chromedriver_win32/chromedriver.exe");
WebDriver driver;
DesiredCapabilities capability = DesiredCapabilities.chrome();
capability.setCapability(ChromeDriver.BINARY, new File("C:\\Program Files (x86)\\chrome.exe").getAbsolutePath());
driver = new RemoteWebDriver(new URL("http://192.168.0.106:1234/wd/hub"), capability);
driver.get("http://google.com");
System.out.println(driver.getTitle());
2 ответа
**Normal mode:**
WebDriver driver;
driver=new ChromeDriver();
**incognito mode:**
WebDriver driver;
System.setProperty("webdriver.chrome.driver","C:/Users/chromedriver_win32/chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.addArguments("-incognito");
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
driver=new ChromeDriver(capabilities);
1 - Возможности: https://sites.google.com/a/chromium.org/chromedriver/capabilities
2 - "Режим Icognito" - это возможность браузера Chrome, и он настроен так:
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
ChromeOptions options = new ChromeOptions();
options.addArguments("-incognito");
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
// For local usage
driver = new ChromeDriver(capabilities);
// For HUB usage
driver = new RemoteWebDriver(new URL("hub url here"), capabilities);
3 - Вам необходимо использовать обратную косую черту для системного свойства, указывающего на исполняемый файл драйвера, а также вам нужно избегать тех, у кого есть дополнительные обратные слеши, если вы используете JAVA:
System.setProperty("webdriver.chrome.driver", "C:\\pathto\\my\\chromedriver.exe");
4 - Для использования HUB каждому узлу нужен хроматический драйвер. Просто поместите его в ту же папку, что и ваш selenium-server-standalone-3.3.1.jar, и запустите узел следующим образом:
java -Dwebdriver.chrome.driver="./chromedriver.exe" -jar selenium-server-standalone-3.3.1.jar -role node -nodeConfig nodeConfig.json
Конечно, вам нужен nodeConfig, который поддерживает браузеры Chrome. Вот пример:
{
"capabilities":
[
{
"browserName": "chrome",
"maxInstances": 5,
"seleniumProtocol": "WebDriver"
}
],
"proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
"maxSession": 5,
"port": 5555,
"register": true,
"registerCycle": 5000,
"hub": "http://localhost:4444",
"nodeStatusCheckTimeout": 5000,
"nodePolling": 5000,
"role": "node",
"unregisterIfStillDownAfter": 60000,
"downPollingLimit": 2,
"debug": false,
"servlets" : [],
"withoutServlets": [],
"custom": {}
}