from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time,sys
driver = webdriver.Chrome()
driver.get("https://stackoverflow.com/users/login?ssrc=head&returnurl=http%3a%2f%2fstackoverflow.com%2fusers%2f7197440%2fa83533774%3ftab%3dtopactivity")
elem = driver.find_element_by_xpath('//*[@id="email"]')
elem.send_keys("******")
elem = driver.find_element_by_xpath('//*[@id="password"]')
elem.send_keys("***")
elem.send_keys(Keys.RETURN)
time.sleep(5)
name = time.ctime().replace(' ','-')+'.png'
driver.save_screenshot(name)
time.sleep(5)
print 'end',time.ctime()
driver.close()
crontab:
DISPLAY=:0 google-chrome
*/3 * * * * python ~/selenium_so.py >> log1.txt
*/1 * * * * date >> log.txt
我找到了这个答案,但我该如何练习他 run selenium with crontab (python)
感谢您的回答!
答案 0 :(得分:2)
如果你想用GUI启动某些东西,你必须指示cron在哪里发送输出:
* * * * * export DISPLAY=:0 && (your instruction)
我需要构建一个测试用例,看看这是否适用于Selenium。我不清楚这个导出是否适用于由python脚本而不是cron本身生成的进程。但原则上,这将允许您使用GUI启动进程。
有一些技巧,你需要成为一个用户而不是root用户,所以一定要把它放在你的用户crontab而不是root或sudo crontab中。
答案 1 :(得分:0)
我建议使用Webmin这是一个很棒的Linux工具包(Web界面)
答案 2 :(得分:0)
您的应用程序可能会使用一些环境变量 您可以从 /home/user1/.bashrc 文件中存储环境变量
typeset -gx > /tmp/user1envvars
和 /etc/crontab 条目看起来像
* * * * * user1 /bin/bash -c 'source /tmp/user1envvars ; /path/to/your/app args..'