2

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:

  • selenium = 3.8.0
  • geckodriver = 0.18.0
  • Firefox version 53
  • python = 3.6

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...!!

1 Answer 1

2

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:

Sign up to request clarification or add additional context in comments.

3 Comments

thanks for your reply . Unfortunately I am out of office till sunday . I will revert to the updated system on monday and let you know the result.
DebanjanB ..... I have updated the latest 1)selenium->3.141 2) Firefox->72 and 3)geckodriver->0.26.0....... then I put the geckodriver on /usr/local/bin and made it executable............... now the error is 'geckodriver' executable needs to be in PATH.
@raymax Great. So the current issue is solved. 'geckodriver' executable needs to be in PATH seems to be a new error. Can you raise a new question as per your new requirement please?

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.