如何解决"org.openqa.selenium.WebDriverException: java.net.ConnectException: 无法连接到 localhost/"用谷歌驱动?
我从 1 周开始就面临上述问题.早些时候它工作顺利.即使现在有时它也可以正常工作,但大多数时候我都会收到无法连接到 localhost/"错误.:(我已将 chrome 驱动程序升级到 2.37,现在又将其降级到 2.36,但没有运气.:( 谢谢.
I am facing above mentioned issue since 1 week. Earlier it was working smoothly. Even now sometimes it works fine but most of the time I am getting "Failed to connect to localhost/" error. :( I have upgraded chrome driver to 2.37 now downgraded it again to 2.36 but no luck. :( Thanks.
问题详情:java.net.ConnectException: 无法连接到 localhost/0:0:0:0:0:0:0:1:4321构建信息:版本:'3.11.0',修订:'e59cfb3',时间:'2018-03-11T20:33:15.31Z'系统信息:主机:'GURWUNknjk',ip:'10.202.126.154',os.name:'Windows 8.1',os.arch:'amd64',os.version:'6.3',java.version:'1.8.0_131'驱动信息:driver.version:RemoteWebDriver
以下代码供您参考:注意:在登录之前它工作正常.只有当我在登录后尝试搜索某些元素时才会出现问题.
Here is code for your reference: Note : It works fine till login. Issue comes only when I try to search some element after login.
public static WebDriver driver;
public static void main(String[] args) throws InterruptedException, IOException {
System.setProperty("webdriver.chrome.driver", "d://chromedriver.exe");
driver = new ChromeDriver();
String url = "https://accounts.google.com/signin/v2/identifier?continue=https%3A%2F%2Faccounts.google.com%2Fb%2F0%2FAddMailService&flowName=GlifWebSignIn&flowEntry=AddSession";
driver.get(url);
driver.manage().window().maximize();
WebDriverWait wait = new WebDriverWait(driver, 20);
driver.manage().timeouts().implicitlyWait(15,TimeUnit.SECONDS) ;
wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("input[type='Email']")));
if(driver.getCurrentUrl().contains("https://accounts.google.com/signin/v2/identifier?"))
{
driver.findElement(By.id("identifierId")).sendKeys(username);
driver.findElement(By.id("identifierNext")).click(); wait.until(ExpectedConditions.presenceOfElementLocated(By.name("password")));
driver.findElement(By.name("password")).sendKeys(pwd);
driver.findElement(By.name("password")).sendKeys(Keys.ENTER);
}
else{
wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("input[type='Email']")));
driver.findElement(By.name("Email")).sendKeys(UserName);
driver.findElement(By.id("next")).click(); wait.until(ExpectedConditions.presenceOfElementLocated(By.name("Passwd")));
driver.findElement(By.name("Passwd")).sendKeys(Pwd);
wait.until(ExpectedConditions.presenceOfElementLocated(By.name("signIn")));
driver.findElement(By.id("signIn")).click();
}
wait.until(ExpectedConditions
.visibilityOfElementLocated(By.id(element id)));
driver.findElement(By.id(element id))
.sendKeys(some value);
Thread.sleep(3000);
driver.findElement(By.id(element id)).click(); }
推荐答案
错误说明了一切:
java.net.ConnectException: Failed to connect to localhost/0:0:0:0:0:0:0:1:4321
Build info: version: '3.11.0', revision: 'e59cfb3', time: '2018-03-11T20:33:15.31Z'
System info: host: 'GURWUNknjk', ip: '10.202.126.154', os.name: 'Windows 8.1', os.arch: 'amd64', os.version: '6.3', java.version: '1.8.0_131'
Driver info: driver.version: RemoteWebDriver
错误清楚地表明 ChromeDriver 未被识别为:
The error clearly shows that the ChromeDriver was not recognized as in :
Driver info: driver.version: RemoteWebDriver
您的主要问题是您使用的二进制文件之间的版本兼容性,如下所示:
Your main issue is the version compatibility between the binaries you are using as follows :
- 您正在使用 chromedriver=2.37
- 我们不知道您的 chrome 版本.
- 您的 Selenium 客户端 版本是 3.11.0.
- 您的 JDK 版本是 1.8.0_131,相当古老.
- You are using chromedriver=2.37
- Your chrome version is unknown to us.
- Your Selenium Client version is 3.11.0.
- Your JDK version is 1.8.0_131 which is pretty ancient.
所以 JDK v8u131 、Selenium Client v3.11.0 、ChromeDriver 版本之间存在明显的不匹配(v2.37).
So there is a clear mismatch between the JDK v8u131 , Selenium Client v3.11.0 , ChromeDriver version (v2.37).
- 将 JDK 升级到最新级别 JDK 8u162.
- 将 ChromeDriver 保留在当前 ChromeDriverv2.37 级别.
- 将 Chrome 版本保持在 Chrome v65.x 级别.(根据 ChromeDriver v2.37 发行说明)
- 清理你的项目工作区通过你的IDE和重建你的项目只需要依赖.
- 使用 CCleaner 工具清除之前和在您的测试套件执行之后.
- 如果您的基础 Web Client 版本太旧,请通过 卸载它Revo Uninstaller 并安装最新的 GA 和发布版本的 Web Client.
- 进行一次系统重启.
- 执行你的
@Test
.
- Upgrade JDK to recent levels JDK 8u162.
- Keep ChromeDriver at current ChromeDriver v2.37 level.
- Keep Chrome version at Chrome v65.x levels. (as per ChromeDriver v2.37 release notes)
- Clean your Project Workspace through your IDE and Rebuild your project with required dependencies only.
- Use CCleaner tool to wipe off all the OS chores before and after the execution of your test Suite.
- If your base Web Client version is too old, then uninstall it through Revo Uninstaller and install a recent GA and released version of Web Client.
- Take a System Reboot.
- Execute your
@Test
.
相关文章