在Java中运行selenium测试时偶尔出现EACCES错误

问题描述 投票:0回答:1

在Windows 10 1809上,将引发以下错误。我正在使用chrome进行测试。

错误消息1

频率:大约每50个驱动程序实例化。

  [...]project\node_modules\selenium-webdriver\net\portprober.js:159

  Rejected promise returned by test. Reason:

  Error {
    address: '0.0.0.0',
    code: 'EACCES',
    errno: 'EACCES',
    port: 49945,
    syscall: 'listen',
    message: 'listen EACCES 0.0.0.0:49945',
  }

  Promise (node_modules/selenium-webdriver/net/portprober.js:159:12)
  isFree (node_modules/selenium-webdriver/net/portprober.js:150:10)
  Object.findFreePort (node_modules/selenium-webdriver/net/portprober.js:176:15)

端口号不同:49945,56348,......

错误消息2

频率:大约每100到200个驱动程序实例化。

  [...]project\node_modules\selenium-webdriver\http\index.js:244

  Rejected promise returned by test. Reason:

  Error {
    message: 'EADDRINUSE connect EADDRINUSE 127.0.0.1:51078',
  }

如何摆脱那些偶然的错误?

javascript selenium selenium-webdriver ava
1个回答
0
投票

错误消息1的解决方案

似乎是一个issue in selenium webdriver

错误消息2的解决方案

使用以下powershell脚本调整TCP堆栈设置并重新引导系统。

Get-Item 'HKLM:\System\CurrentControlSet\Services\Tcpip\Parameters' | New-ItemProperty -Name MaxUserPort -Value 65534 -Force | Out-Null
Get-Item 'HKLM:\System\CurrentControlSet\Services\Tcpip\Parameters' | New-ItemProperty -Name TcpTimedWaitDelay -Value 30 -Force | Out-Null
Get-Item 'HKLM:\System\CurrentControlSet\Services\Tcpip\Parameters' | New-ItemProperty -Name TcpNumConnections -Value 16777214 -Force | Out-Null
Get-Item 'HKLM:\System\CurrentControlSet\Services\Tcpip\Parameters' | New-ItemProperty -Name TcpMaxDataRetransmissions -Value 5 -Force | Out-Null

Source for the TCP stack settings

© www.soinside.com 2019 - 2024. All rights reserved.