raymax
raymax

Reputation: 83

Message: Unable to find a matching set of capabilities error using Selenium and GeckoDriver while loading on live server

I have to build an web application on a linux webserver that will use selenium with firefox . When I run the application the the linux server "localhost:5000" it works perfectly fine . But when i tried it with "127.0.0.1:80" it is not giving me an error during webdriver loading:

driver = webdriver.Firefox(executable_path='/usr/local/bin/geckodriver')

Error:

"Message: Unable to find a matching set of capabilities"  

In nginx access.log it is producing a http 200 and there is nothing on error.log in geckodriver.log it produce:

Listening on port 41209

Environment details:

nginx imageApp.conf

server {
listen 80;
server_name 127.0.0.1;

location / {
    include proxy_params;
    proxy_pass http://unix:/home/administator/imageDetectionApplication/imageDetectionApplication.sock;
    }
}

imageDetectionApplication.service

I am completely new in linux server...!!

Upvotes: 2

Views: 1389

Answers (1)

undetected Selenium
undetected Selenium

Reputation: 193338

This error message...

Message: Unable to find a matching set of capabilities

...implies that the GeckoDriver was unable to initiate/spawn a new Browsing Context i.e. Firefox Browser session.

Your main issue is the incompatibility between the version of the binaries you are using as follows:

  • Your Selenium Client version is 3.8.0 which is almost 2.5 years older.
  • Your JDK version is unknown to us.
  • Your GeckoDriver version is 0.18.0 which is older.
  • Your Firefox version is 53 which is also pretty old.

So there is a clear mismatch between the Selenium Client v3.8.0 , GeckoDriver v0.18.0 and the Firefox Browser v53


Solution

Ensure that:

  • JDK is upgraded to current levels JDK 8u251.
  • Selenium is upgraded to current levels Version 3.141.59.
  • GeckoDriver is upgraded to GeckoDriver v0.26.0 level.
  • Firefox is upgraded to current Firefox v72.0 levels.
  • GeckoDriver is present in the desired location.
  • GeckoDriver is having executable permission for non-root users.
  • Clean your Project Workspace through your IDE and Rebuild your project with required dependencies only.
  • If your base Web Client version is too old, then uninstall it install a recent GA and released version of Web Client.
  • Take a System Reboot.
  • Execute your Test as a non-root user.
  • Always invoke driver.quit() within tearDown(){} method to close & destroy the WebDriver and Web Client instances gracefully.

References

You can find a couple of relevant discussions in:

Upvotes: 2

Related Questions