1

Я пытаюсь запустить простой скрипт с использованием launchd в OS X 10.10.5, но это не удается. Я думаю, что это имеет какое-то отношение к разрешениям/привилегиям, которые не установлены правильно?Сбой сценария Python с использованием launchd и Selenium

Это код ошибки он подбрасывает:

Traceback (most recent call last): File "/Users/John/Documents/AutoRun/OpenTwitter.py", line 7, in driver = webdriver.Firefox() File "/Library/Python/2.7/site-packages/selenium-3.0.0.b2-py2.7.egg/selenium/webdriver/firefox/webdriver.py", line 64, in init self.service = Service(executable_path, firefox_binary=self.options.binary_location) File "/Library/Python/2.7/site-packages/selenium-3.0.0.b2-py2.7.egg/selenium/webdriver/firefox/service.py", line 44, in init log_file = open(log_path, "a+") IOError: [Errno 13] Permission denied: 'geckodriver.log' Exception AttributeError: "'Service' object has no attribute 'log_file'" in <bound method Service.__del__ of <selenium.webdriver.firefox.service.Service object at 0x10ca6bdd0>> ignored

Я получаю напечатанное «запустить сценарий» в консоли job.out, что я HARDCODED в мой сценарий, поэтому я предполагаю, что на самом деле запуск программ запуск сценария в порядке, но проблема с драйвером Selenium/Firefox встречается? И вот в чем проблема с моими разрешениями?

Это нормально работает в IDE/run и от терминала.

Вот тестовый код, который я пытаюсь запустить:

#!/usr/bin/python 

from selenium import webdriver 

print("start script") 

driver = webdriver.Firefox() 
driver.get("https://twitter.com/search?q=news&src=typd&lang=en") 


print("twitter open, done") 

В P.LIST следующим образом:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>Label</key> 
    <string>JohnsJob.job</string> 
    <key>Program</key> 
    <string>/Users/John/Documents/AutoRun/OpenTwitter.py</string> 
    <key>StandardErrorPath</key> 
    <string>/tmp/JohnsJob.job.err</string> 
    <key>StandardOutPath</key> 
    <string>/tmp/JohnsJob.job.out</string> 
    <key>StartCalendarInterval</key> 
    <array> 
     <dict> 
      <key>Hour</key> 
      <integer>10</integer> 
      <key>Minute</key> 
      <integer>14</integer> 
      <key>Weekday</key> 
      <integer>3</integer> 
     </dict> 
    </array> 
</dict> 
</plist> 

Примечание: изменить время для этого кода для запуска в так запуск программ Я могу проверить.

+0

Вы точно верны; отсутствие разрешений на то, что ваш скрипт не работает должным образом. Я бы предположил, что вы также включили .plist для запуска в свой вопрос. –

+0

Спасибо за ваши отзывы, я добавил код p.list в исходный вопрос, любая идея, почему разрешения установлены неправильно и/или как/какой файл их устанавливать? – Kiwi

+0

Запускаете ли вы это как launchagent или launchdaemon, а в каком каталоге находится .plist? –

ответ

0

мне удалось заставить его работать, поставив geckodriver в/USR/бен

  1. переместить файл в папку/USR/BIN: Судо мв chromedriver/USR/бен
  2. Гото/usr/bin, и вам нужно будет запустить что-то вроде «chmod a + x geckodriver», чтобы отметить его исполняемый файл.

У меня возникли проблемы с поиском PATH для водителя и остановкой сценария.

Смежные вопросы