Selenium UnreachableBrowserException - Java
Selenium 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
我试过这些:
- 32/64 位驱动程序。
- 运行 它作为管理员。
- 正在创建一个 Try/Catch 块。
- 其他司机。 (喜欢Operadriver.exe)(结果:同样的错误)
在实例化之前添加这些行 "WebDriver driver = new ChromeDriver();"
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--no-sandbox");
然后在声明 Webdriver 的地方添加参数,如下所示:-
WebDriver driver = new ChromeDriver(chromeOptions);
希望对你有所帮助
您正在使用
硒版本:3.12.0
chrome驱动程序版本: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\repository\org\seleniumhq\selenium
文件夹,然后再次尝试下载依赖项。
同时更新到最新的 chrome 浏览器版本。
希望对您有所帮助。
我认为你的 windows 不是英语。我有同样的问题。当我在英文版 windows 10 中尝试相同时,代码可以正常工作。
这是土耳其语的问题Windows。如异常消息中所示,用户代理值 "selenium/3.12.0 (java wındows)" 中的“ı”字符是异常的原因。
问题是字符串“WINDOWS”被更改为小写并且由于 TR 区域设置而导致“wındows”。我发现它是在classorg.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.
上开了一个 pull request
您还可以找到我编辑的叉子 here。
Locale.setDefault(new Locale("en", "EN"));
你也可以试试这个。它对我有用。
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
我试过这些:
- 32/64 位驱动程序。
- 运行 它作为管理员。
- 正在创建一个 Try/Catch 块。
- 其他司机。 (喜欢Operadriver.exe)(结果:同样的错误)
在实例化之前添加这些行 "WebDriver driver = new ChromeDriver();"
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--no-sandbox");
然后在声明 Webdriver 的地方添加参数,如下所示:-
WebDriver driver = new ChromeDriver(chromeOptions);
希望对你有所帮助
您正在使用
硒版本:3.12.0
chrome驱动程序版本: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\repository\org\seleniumhq\selenium
文件夹,然后再次尝试下载依赖项。
同时更新到最新的 chrome 浏览器版本。
希望对您有所帮助。
我认为你的 windows 不是英语。我有同样的问题。当我在英文版 windows 10 中尝试相同时,代码可以正常工作。
这是土耳其语的问题Windows。如异常消息中所示,用户代理值 "selenium/3.12.0 (java wındows)" 中的“ı”字符是异常的原因。
问题是字符串“WINDOWS”被更改为小写并且由于 TR 区域设置而导致“wındows”。我发现它是在classorg.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.
上开了一个 pull request您还可以找到我编辑的叉子 here。
Locale.setDefault(new Locale("en", "EN"));
你也可以试试这个。它对我有用。