Как запустить Chrome (как в обычном режиме, так и в режиме инкогнито) и открыть URL на удаленном ПК (узле) с помощью Selenium Grid в Java?

Я пробую Selenium Grid на Java и просто хочу запустить Chrome в обоих

  • нормальный режим и
  • режим инкогнито

в удаленном ПК (узел) и откройте google.com

Я настроил соединение узла узла. Я попробовал этот код, но он кажется неправильным.

  1. Любое руководство, как это сделать?
  2. Как пользоваться 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": {}
}
Другие вопросы по тегам