记录一下解决webdriver启动浏览器报“Unable to find a free port”问题的方法

1.我的webdriver启动浏览器很简单

public void getWebDriver() {
System.out.println("开始启动浏览器...");
System.setProperty("webdriver.chrome.driver","c:\\chromedriver.exe");
 driver = new ChromeDriver();
if (driver != null) {
System.out.println("浏览器启动成功...");
this.driver = driver;
} else {
System.out.println("浏览器启动失败...");
}
}


可是在运行的时候却报了如下的错误:


2、开始解决问题,首先要去看看 PortProber.findFreePort()方法是如何查找可用的端口的


该类在package org.openqa.selenium.net;中


在这里可以看到在实现的时候是循环了5次去查找可用的端口,如果找不到就包错了。


在这里我们需要关注一下 checkPortIsFree(int port)找个方法,找个方法的具体实现是:



很明显代码中利用socket服务来验证一个端口是否可用,验证完毕后进行socket服务的关闭,以便是否找个可用的端口,后续来给启动浏览器用。


于是将该部分代码进行测试,结果发现了如下的错误:


好了出现了JVM_Bind的错误,此时就开始度娘了。

中间找到了这样的一篇文章:   http://blog.csdn.net/damaolly/article/details/22270759

里面给我最大的启发就是:


此时突然想起来我前几天就修改过hosts文件。

因为我的IP是动态获取的。

于是我将里面的

10.11.112.77   localhost进行了注释

同时又开放了

127.0.0.1     localhost

此时再次通过webdriver启动浏览器就没有问题了,在这里做个小小的记录。



评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值