[英]Python script fails using launchd and Selenium
我试图在OS X 10.10.5中使用launchd运行一个简单的脚本,但是作业失败了。 我认为它与未正确设置的权限/权限有关?
这是它抛出的错误代码:
回溯(最近一次调用最后一次):文件“/Users/John/Documents/AutoRun/OpenTwitter.py”,第7行,在driver = webdriver.Firefox()文件“/Library/Python/2.7/site-packages/selenium- 3.0.0.b2-py2.7.egg / selenium / webdriver / firefox / webdriver.py“,第64行,在init self.service = Service(executable_path,firefox_binary = self.options.binary_location)文件”/ Library / Python /2.7/site-packages/selenium-3.0.0.b2-py2.7.egg/selenium/webdriver/firefox/service.py“,第44行,在init log_file = open(log_path,”a +“)IOError:[ Errno 13]权限被拒绝:'geckodriver.log'异常AttributeError:“'服务'对象在
<bound method Service.__del__ of <selenium.webdriver.firefox.service.Service object at 0x10ca6bdd0>>
没有属性'log_file'”<bound method Service.__del__ of <selenium.webdriver.firefox.service.Service object at 0x10ca6bdd0>>
被忽略
我确实在控制台job.out中得到了打印的“启动脚本”,我已经硬编码到我的脚本中,所以我认为launchd实际上是启动了脚本,但是它遇到了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>
注意:我更改此代码在launchd中运行的时间,以便我可以测试。
我已经设法通过将geckodriver放在/ usr / bin中来实现它
我认为它很难找到驱动程序的PATH并停止脚本死机。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.