Jenkins で Selenium を実行しようとすると問題が発生する

okwaves2024-01-25  7

1,ubuntu でジェンキンスをセットアップする 2、ubuntuにSeleniumをセットアップします 3,Seleniumテストスクリプトを作成する 以下のようなコード:

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、スクリプトをローカルで実行すると成功します。 5、ジェンキンスを使用してスクリプトを実行しようとしています、 jenkins ビルドの下でシェルを実行し、 cd /ホーム/テスト Pythonのテスト.py 6、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

Webdriver を開始できなかったようです。どうすればこの問題を解決して jeninks で Selenium を実行できるかわかりません。自動化は初めてです。アドバイスをお願いします。



------------------------

Selenium テスト スクリプトに以下を追加してみてください:

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-dev-shm-usage")
chrome_options.add_argument('--headless')

2

@yandm はヘッドレス クロムを使用していますか?その場合は、上記の行の下に次の行も追加します: chrome_options.add_argument('--headless')

– r10

2020 年 9 月 3 日 11:54

はい、あなたは素晴らしいです!!この 2 行を追加しました。うまくいきました。 selenium.webdriver.chrome.options からインポート オプション chrome_options.add_引数('--headless')

– yandm

2020 年 9 月 3 日 12:34



------------------------

問題は chromedriver パスにあると思います。このパスは Jenkins ノード「executable_path='/home/test/chromedriver'」に存在しますか? ?

jenkins ノードでアクセスできる chromediver の正しいパスを指定します。

1

はい、パス「/home/test/chromedrive」は、 jenkins ノード上にあります...

– yandm

2020 年 9 月 3 日 11:42

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。