cronを使ったSelenium において、Firefox の Driver取得でエラーが出てしまいます。
PATHが通っていないだけだとは思うのですが、どのように対応していいかわかりません。。
【分かっていること】
①VSCode上でpwdを実行したときに表示されるカレントディレクトリ:/Users/xxx/Documents/Python
②macのTerminal上でpwdを実行したときに表示されるカレントディレクトリ:/Users/xxx
上記のディレクトリにいる状態で以下を実行すると問題なく動作します。
Termianl
1/usr/local/bin/python3 /Users/xxx/Documents/Python/GetQuartelyData.py
Python
1def get_driver_FireFox2(downloadPath,headlessflag): 2 3 # coding: utf-8 4 import os 5 from selenium import webdriver 6 7 options = Options() 8 if headlessflag == True: 9 options.add_argument('-headless') 10 fp = webdriver.FirefoxProfile() 11 fp.set_preference("browser.download.folderList", 2) 12 fp.set_preference("browser.download.dir", downloadPath) 13 # ダウンロードマネージャウィンドウを表示させない 14 fp.set_preference("browser.download.manager.showWhenStarting", False) 15 # MIMEタイプを設定 16 # fp.set_preference('browser.helperApps.neverAsk.saveToDisk', "text/plain, application/vnd.ms-excel, text/csv, text/comma-separated-values, application/octet-stream") 17 fp.set_preference('browser.helperApps.neverAsk.saveToDisk', "application/vnd.ms-excel") 18 19 try: 20 driver = webdriver.Firefox(firefox_options=options,firefox_profile=fp) 21 except: 22 t = traceback.format_exc() 23 text_file = open("errormessage.txt", "w") 24 text_file.write(t) 25 text_file.close() 26 return driver 27 28 29get_driver_FireFox2("/Users/Download",True)
なのですが、cronに以下のように記載すると以下のエラーが発生します。
cron
144 16 * * * /usr/local/bin/python3 /Users/xxx/Documents/Python/GetQuartelyData.py
errorcode
1Traceback (most recent call last): 2 File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/selenium/webdriver/common/service.py", line 72, in start 3 self.process = subprocess.Popen(cmd, env=self.env, 4 File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/subprocess.py", line 951, in __init__ 5 self._execute_child(args, executable, preexec_fn, close_fds, 6 File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/subprocess.py", line 1821, in _execute_child 7 raise child_exception_type(errno_num, err_msg, err_filename) 8FileNotFoundError: [Errno 2] No such file or directory: 'geckodriver' 9 10During handling of the above exception, another exception occurred: 11 12Traceback (most recent call last): 13 File "/Users/xxx/Documents/Python/get_driver_fx.py", line 40, in get_driver_FireFox2 14 driver = webdriver.Firefox(firefox_options=options,firefox_profile=fp) 15 File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/selenium/webdriver/firefox/webdriver.py", line 164, in __init__ 16 self.service.start() 17 File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/selenium/webdriver/common/service.py", line 81, in start 18 raise WebDriverException( 19selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.
補足として、cronで実行したときに上記エラーファイルが吐き出されるディレクトリが/Users/xxxの下に保存されます。
どのようにコマンドをTermianlで叩けば問題なく実行できるようになるでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。