Troubleshooting of selenium errors: Difference between revisions

From LemonWiki共筆
Jump to navigation Jump to search
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
[https://www.selenium.dev/ SeleniumHQ Browser Automation] ([https://github.com/php-webdriver/php-webdriver php-webdriver/php-webdriver: PHP client for Selenium/WebDriver protocol. Previously facebook/php-webdriver])
[https://www.selenium.dev/ SeleniumHQ Browser Automation] ([https://github.com/php-webdriver/php-webdriver php-webdriver/php-webdriver: PHP client for Selenium/WebDriver protocol. Previously facebook/php-webdriver])


== How to resolbe the selenium errors ==
== How to resolve the selenium errors ==


* Checking the standalone selenium server is running or not {{kbd | key=<nowiki>ps aux | grep selenium</nowiki>}} on {{Linux}}
* Checking the standalone selenium server is running or not {{kbd | key=<nowiki>ps aux | grep selenium</nowiki>}} on {{Linux}}
Line 26: Line 26:
== How to resolve [WARNING]: This version of ChromeDriver only supports Chrome version xx or [WARNING]: This version of ChromeDriver has not been tested with Chrome version 86 ==
== How to resolve [WARNING]: This version of ChromeDriver only supports Chrome version xx or [WARNING]: This version of ChromeDriver has not been tested with Chrome version 86 ==


Situation
Situation: Updating the ChromeDriver
* [https://chromedriver.chromium.org/downloads Download] the same version of ChromeDriver with the version installed on the computer or server
* Before Updating, If you encounter “file in use” errors:
* You may need to stop the ChromeDriver in the process list if you could not overwrite the existing ChromeDriver file
** {{Win}} Open Command Prompt as Administrator, Run command: {{kbd | key=<nowiki>taskkill /IM "chromedriver.exe" /F</nowiki>}}
** {{Win}} (1) Open the command prompt with the administrative permission (2) and keyin {{kbd | key=<nowiki>taskkill /IM "chromedriver.exe" /F</nowiki>}} to stop the ChromeDriver process
* Two option to update the ChromeDriver
** {{Linux}}  
** Option 1: Manual Download: Download ChromeDriver from [https://chromedriver.chromium.org/downloads ChromeDriver Downloads]
* Overwrite the existing ChromeDriver file
** Option 2: Package Managers: On {{Mac}}/{{Linux}}, use [https://brew.sh/ Homebrew]. On {{Win}}, use [https://chocolatey.org/ Chocolatey].
* Ensure the version matches your installed Chrome browser. Replace the existing ChromeDriver file
 
== How to resolve macOS says the *.app is damaged. What now? ==
Error message<ref>GoogleChromeLabs/chrome-for-testing https://github.com/GoogleChromeLabs/chrome-for-testing</ref><ref>[https://errerrors.blogspot.com/2023/07/how-to-fix-google-chrome-for-testing.app-is-damaged-and-cannot-be-opened.html 解決「Google Chrome for Testing.app」已損毀,無法打開。 你應該將其丟到「垃圾桶」的問題]</ref>
<pre>
“Google Chrome for Testing.app” is damaged and can’t be opened. You should move it to the Trash.
</pre>
 
Solution
* Open the terminal, and key-in the following command:
<pre>
xattr -cr 'Google Chrome for Testing.app'
</pre>


== References ==
== References ==

Latest revision as of 17:52, 7 February 2025

SeleniumHQ Browser Automation (php-webdriver/php-webdriver: PHP client for Selenium/WebDriver protocol. Previously facebook/php-webdriver)

How to resolve the selenium errors[edit]

  • Checking the standalone selenium server is running or not ps aux | grep selenium on Linux  
  • Checking the log file of standalone selenium server e.g. launching the server by the command sudo nohup java -jar selenium-server-standalone-3.141.59.jar > /home/user/selenium.log 2>&1 &. The log file was located at /home/user/selenium.log
  • (optional) Checking the port where the selenium server is running e.g. wget http://localhost:4444
  • Checking the error log file of HTTP server e.g. sudo tail /var/log/nginx/error.log
  • (optional) Checking the error log file of PHP-FPM e.g. sudo tail /var/log/www.access.log which its file path defined in the configuration file /etc/php-fpm.d/www.conf
  • (optional) Checking the keyboard event e.g. CTRL works on Win   but not works on macOS icon_os_mac.png [1]

How to resolve Uncaught Facebook\WebDriver\Exception\InvalidSelectorException[edit]

Error message

PHP Fatal error:  Uncaught Facebook\WebDriver\Exception\InvalidSelectorException: invalid selector: The result of the xpath expression "xxx" is: [object Attr]. It should be an element.
  (Session info: chrome=83.0.4103.61) in /path/to/vendor/php-webdriver/webdriver/lib/Exception/WebDriverException.php:105

Situation

  • After the term was keyed in into the text box, the script shuld auto click the specified button which specified by XPath expression.

Possibile soultions

  • Solution1: Using headless chrome[2]
  • Solution2: Not click the button which specified by XPath expression. Send the ENTER to submit the form[3].

How to resolve [WARNING]: This version of ChromeDriver only supports Chrome version xx or [WARNING]: This version of ChromeDriver has not been tested with Chrome version 86[edit]

Situation: Updating the ChromeDriver

  • Before Updating, If you encounter “file in use” errors:
    • Win   Open Command Prompt as Administrator, Run command: taskkill /IM "chromedriver.exe" /F
  • Two option to update the ChromeDriver
  • Ensure the version matches your installed Chrome browser. Replace the existing ChromeDriver file

How to resolve macOS says the *.app is damaged. What now?[edit]

Error message[4][5]

“Google Chrome for Testing.app” is damaged and can’t be opened. You should move it to the Trash.

Solution

  • Open the terminal, and key-in the following command:
xattr -cr 'Google Chrome for Testing.app'

References[edit]