Search code examples
javascriptseleniumselenium-webdriverava

Occassional EACCES error running selenium tests in ava


On Windows 10 1809 the following errors gets thrown. I am using chrome for my tests.

Error message 1

Frequency: About every 50th driver instantiation.

  [...]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)

The port number ist varying: 49945, 56348, ...

Error message 2

Frequency: About every 100th to 200th driver instantiation.

  [...]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',
  }

How do I get rid of those occasional errors?


Solution

  • Solution for error message 1

    Seems to be an issue in selenium webdriver.

    Solution for error message 2

    Adjust the TCP stack settings with the following powershell script and reboot the sytem.

    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