加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – WebDriver:executeScript()导致BindException

发布时间:2020-12-15 02:22:35 所属栏目:Java 来源:网络整理
导读:javascripthere是在 Javascript: how to get text nodes following/preceding break tags and wrap them with ddb tag?找到的脚本 在通过WebDriver加载的每个页面上运行((JavascriptExecutor)驱动程序).executeScript(javascripthere)时, 测试运行3分钟后,我
javascripthere是在 Javascript: how to get text nodes following/preceding break tags and wrap them with ddb tag?找到的脚本

在通过WebDriver加载的每个页面上运行((JavascriptExecutor)驱动程序).executeScript(javascripthere)时,

测试运行3分钟后,我收到以下错误:

Exception in thread "main" org.openqa.selenium.WebDriverException:
java.net.BindException: Address already in use: connect
System info: os.name: 'Windows XP',os.arch: 'x86',os.version: '5.1',java.version: '1.6.0_18'
Driver info: driver.version: remote
        at
org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:
341)
        at
org.openqa.selenium.firefox.FirefoxDriver.execute(FirefoxDriver.java:
234)
        at
org.openqa.selenium.remote.RemoteWebDriver.findElements(RemoteWebDriver.java:
173)
        at
org.openqa.selenium.remote.RemoteWebDriver.findElementsByXPath(RemoteWebDriver.java:
231)
        at org.openqa.selenium.By$6.findElements(By.java:200)
        at
org.openqa.selenium.remote.RemoteWebDriver.findElements(RemoteWebDriver.java:
158)

Caused by: java.net.BindException: Address already in use: connect
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.PlainSocketImpl.doConnect(Unknown Source)
        at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
        at java.net.PlainSocketImpl.connect(Unknown Source)
        at java.net.SocksSocketImpl.connect(Unknown Source)
        at java.net.Socket.connect(Unknown Source)
        at
org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:
123)
        at
org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:
133)
        at
org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:
149)
        at
org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:
108)
        at
org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:
415)
        at
org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:
641)
        at
org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:
211)
        at
org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.execute(NewProfileExtensionConnection.java:
125)
        at org.openqa.selenium.firefox.FirefoxDriver
$LazyCommandExecutor.execute(FirefoxDriver.java:341)
        at
org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:
328)
        ... 11 more

基本上,这样做的目的是捕获text()xpath语法无法选择的文本节点. Javascript使用< ddb>包装break标记之前和之后的文本节点.标签.然后,WebDriver可以使用/ ddb作为xpath语法来获取文本.

事情似乎运行顺利但在3分钟后崩溃并出现BindException错误.似乎我之前的问题中的Javascript导致了太多的出站连接.

我需要一个解决方案,允许Javascript在WebDriver中不断编辑DOM,以便FirefoxDriver可以选择文本节点.

解决方法

这是一个似乎已被最近的变化(2010年10月28日)清除的问题.这是一个问题,即客户与selenium服务器交谈,甚至客户端与本地或远程的Firefox通信,都会耗尽短暂的端口数量.您应该将框架(客户端和服务器端,如果适用)更新为 newest release(alpha-7).如果您无法升级,可以在本地增加临时端口的数量.对于Windows,修复是 here,否则,做一些谷歌搜索.

问题:http://code.google.com/p/selenium/issues/detail?id=923

修复:http://code.google.com/p/selenium/source/detail?r=10082

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读