当前位置: 代码迷 >> 综合 >> selenium Session ID is null. Using WebDriver after calling quit() 添加java版本代理
  详细解决方案

selenium Session ID is null. Using WebDriver after calling quit() 添加java版本代理

热度:19   发布时间:2023-12-22 02:56:09.0

在服务器上面布置了一个基于selenium的爬虫,周五打开,下周一的时候发现数据在周六就断了,当时我也添加了代理,

DesiredCapabilities capabilities = DesiredCapabilities.chrome();
Proxy proxy = new Proxy();
proxy.setHttpProxy(host.getHostName() + “:” + host.getPort());
capabilities.setCapability(CapabilityType.PROXY, proxy);
driver = new ChromeDriver(capabilities);

当时为了验证是否成功添加代理,还在本地验证了添加了代理的具体ip。

我以为就万事大吉,但是当周一看到爆出来的错误的时候一脸懵逼

org.openqa.selenium.remote.SessionNotFoundException: Session ID is null. Using WebDriver after calling quit()?
Build info: version: '2.44.0', revision: '76d78cf', time: '2014-10-23 20:03:00'
System info: host: 'N/A', ip: 'N/A', os.name: 'Linux', os.arch: 'amd64', os.version: '3.10.0-693.11.1.el7.x86_64', java.version: '1.8.0_151'
Driver info: driver.version: RemoteWebDriver

一开始查找说是版本问题,但是我这个版本对应没有变动过,不会正在使用就会版本不再对应,所以我把这个怀疑先放置,去查找了其他的结局方法, 我在查找的时候发现 driver = new ChromeDriver(capabilities);是这个报的错,我又开始查找这个方向,现在我都忘了是怎么说的,但是也找了好几篇文章,最后都不行。

后来我访问百度,查找IP,发现IP还是本地地址,MD,添加代理并没有成功,我就又开始了查找JAVA版本如何给selenium添加代理,大部分都是python版本的额,但是我最后还是找到了

String proxyIpAndPort = host.getHostName() +":" + host.getPort();DesiredCapabilities capabilities = DesiredCapabilities.chrome();Proxy proxy = new Proxy();proxy.setHttpProxy(proxyIpAndPort).setFtpProxy(proxyIpAndPort).setSslProxy(proxyIpAndPort);capabilities.setCapability(CapabilityType.ForSeleniumServer.AVOIDING_PROXY, true);capabilities.setCapability(CapabilityType.ForSeleniumServer.ONLY_PROXYING_SELENIUM_TRAFFIC, true);capabilities.setCapability(CapabilityType.PROXY, proxy);WebDriver  driver = new ChromeDriver(capabilities);;

完美,添加代理成功!可是官网加上了验证码,添加代理成功后也会出现失败情况,好心累!

  相关解决方案