I struggled for a couple of days to get crontab and selenium to do what I needed and had to use a number of threads from others to piece this together.
The main challenge was getting crontab working. The main issues are:
ensuring #PATH is correct for chromium and setting DISPLAY.
Note that using a line such as -> @reboot DISPLAY=:0 && etc (DID NOT WORK) I had to have DISPLAY on a separate line.
make sure to install selenium
program name is test1.py, this is in a user directory Selenium, but that name is just a coincidence and not relevant to the installation of selenium
The actual purpose of my code is to login to a website, so the # lines are related to this purpose and I've kept them here in case it helps others doing similar.
Please note that I do not describe myself in any way as having linux expertise so can't enter into any detailed discussion on the operation or further fault finding.
Code: Select all
print('test1 start')
import time
import datetime
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
print ('imports')
now = datetime.datetime.now()
now_string = now.strftime("%Y-%m-%d %H:%M:%S") + " : "
print(now_string, 'web demo start')
# start chrome with options in kiosk mode
chromeoptions = Options()
chromeoptions.add_argument("--disable-infobars")
chromeoptions.add_argument("--kiosk")
driver = webdriver.Chrome('/usr/lib/chromium-browser/chromedriver', 0, chromeoptions)
print ('sites')
driver.get('http://www.bbc.com')
time.sleep(10)
#driver.find_element_by_name("username").send_keys("Username")
#driver.find_element_by_name("password").send_keys("Password")
#button = driver.find_element_by_name('commit').send_keys(Keys.RETURN)
print ('test1 end')
Code: Select all
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games:/usr/lib/chromium-b$
DISPLAY=:0.0
@reboot python3 /home/pi/Selenium/test1.py > /home/pi/Selenium/log.txt 2>&1