Селен UnreachableBrowserException - Java

System.setProperty("webdriver.chrome.driver","D:/chromedriver.exe");
        WebDriver driver = new ChromeDriver();   
        driver.navigate().to("https://link");
        driver.findElement(By.cssSelector("#username")).sendKeys("id");
        driver.findElement(By.cssSelector("#password")).sendKeys("pass");
        driver.findElement(By.cssSelector("#clientName")).sendKeys("name");
        driver.findElement(By.cssSelector("#submitButton")).click();
        System.out.println("Okay !");

Я установил свойство для Chrome Driver. Когда я запускаю это выдает ошибку. (Ниже) Я много искал, но не нашел решения.

Starting ChromeDriver 2.40.565498 (ea082db3280dd6843ebfb08a625e3eb905c4f5ab) on port 10589
Only local connections are allowed.
Exception in thread "main" org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.
Build info: version: '3.12.0', revision: '7c6e0b3', time: '2018-05-08T15:15:03.216Z'
System info: host: 'DESKTOP-9HVORCR', ip: '192.168.1.24', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_171'
Driver info: driver.version: ChromeDriver
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:564)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:207)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:130)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:181)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:168)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:123)
    at zaaa.main.main(main.java:11)
Caused by: java.lang.IllegalArgumentException: Unexpected char 0x131 at 23 in User-Agent value: selenium/3.12.0 (java wındows)
    at okhttp3.Headers$Builder.checkNameAndValue(Headers.java:338)
    at okhttp3.Headers$Builder.add(Headers.java:288)
    at okhttp3.Request$Builder.addHeader(Request.java:177)
    at org.openqa.selenium.remote.internal.OkHttpClient.execute(OkHttpClient.java:85)
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:101)
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:73)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:136)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:543)
    ... 6 more

Я попробовал это:

  1. 32/64 битные драйверы.
  2. Запустите его от имени администратора.
  3. Создание блока Try/Catch.
  4. Другие водители. (Как и Operadriver.exe) (Результат: та же ошибка)

5 ответов

Решение

Я думаю, что ваши окна не английские. Я с той же проблемой. Когда я попробовал то же самое в английской версии Windows 10, код работает без проблем.

Locale.setDefault(new Locale("en", "EN"));

Вы также можете попробовать это. это сработало для меня.

Это проблема турецких окон. Как указано в сообщении об исключении, символ "ı" в значении пользовательского агента "selenium/3.12.0 (java wındows)" является причиной исключения. Проблема в том, что строка "WINDOWS" изменена на нижний регистр и приводит к "widows" из-за локали TR. Я обнаружил, что это генерируется в классе org.openqa.selenium.remote.http.HttpClientи добавил Locale.US как это.

String USER_AGENT = String.format(
      "selenium/%s (java %s)",
      new BuildInfo().getReleaseLabel(),
      (Platform.getCurrent().family() == null ?
          Platform.getCurrent().toString().toLowerCase(Locale.US) :
          Platform.getCurrent().family().toString().toLowerCase(Locale.US)));

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

Вы также можете найти мою отредактированную вилку здесь.

Здесь вы используете
селен версия: 3.12.0
версия хромедрайвера: 2.40

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

Starting ChromeDriver 2.40.565498 (ea082db3280dd6843ebfb08a625e3eb905c4f5ab) on port 35584
Only local connections are allowed.
Jun 21, 2018 2:42:51 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS
Okay !

что так же, как ваши стартовые логи. Моя версия браузера Chrome:

Version 67.0.3396.87 (Official Build) (64-bit)

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

.m2\ репозиторий \ орг \seleniumhq\ селеном

Папка оттуда, а затем снова попробуйте загрузить зависимости.

Также обновите браузер до последней версии Chrome.

Надеюсь, поможет.

Добавьте эти строки перед созданием экземпляра "WebDriver driver = new ChromeDriver();"

ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--no-sandbox");

Затем добавьте аргумент, в котором вы объявили Webdriver, как показано ниже:

WebDriver driver = new ChromeDriver(chromeOptions);

Я надеюсь, что это поможет вам.

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