Java 中的偶尔 EACCES 错误 运行 selenium 测试
Occassional EACCES error running selenium tests in ava
在 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',
}
如何消除这些偶发错误?
错误信息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
在 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',
}
如何消除这些偶发错误?
错误信息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