problema al intentar ejecutar selenium en jenkins

Sep 03 2020

1, configure jenkins en ubuntu 2, configure selenium en ubuntu 3, cree el código de script de prueba de selenium como se muestra a continuación:

from selenium import webdriver
import time

driver=webdriver.Chrome(executable_path='/home/test/chromedriver')
driver.get('https://www.yahoo.com')
time.sleep(2)
screenshot=driver.save_screenshot("yahoo.png")
driver.quit()

4, ejecución exitosa del script localmente 5, tratando de usar jenkins para ejecutar el script, bajo jenkins build execute shell, cd /home/test python test.py 6, resultado de la consola de falla de compilación de Jenkins:

Running as SYSTEM
Building in workspace /var/lib/jenkins/workspace/test
[test] $ /bin/sh -xe /tmp/jenkins127263638261616263.sh
+ cd /home/test
+ python test.py
Traceback (most recent call last):
  File "test.py", line 5, in <module>
    driver=webdriver.Chrome(executable_path='/home/test/chromedriver')
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/chrome/webdriver.py", line 81, in __init__
    desired_capabilities=desired_capabilities)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
    self.start_session(capabilities, browser_profile)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally.
  (unknown error: DevToolsActivePort file doesn't exist)
  (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)

Build step 'Execute shell' marked build as failure
Finished: FAILURE

parece que webdriver no pudo iniciarse, no estoy seguro de cómo puedo solucionar este problema y ejecutar selenium en jeninks. nuevo en la automatización, por favor aconseje gracias!

Respuestas

r10 Sep 03 2020 at 18:31

Intente agregar lo siguiente en su script de prueba de selenio:

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-dev-shm-usage")
chrome_options.add_argument('--headless')
Umang Sep 03 2020 at 18:28

Creo que el problema es con la ruta de chromedriver. ¿Existe esta ruta en el nodo jenkins "executable_path='/home/test/chromedriver'"?

Proporcione la ruta correcta de chromediver a la que se puede acceder en el nodo jenkins.