在Windows 10 1809上,将引发以下错误。我正在使用chrome进行测试。
频率:大约每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,......
频率:大约每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',
}
如何摆脱那些偶然的错误?
似乎是一个issue in selenium webdriver。
使用以下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