If you have access to your crontab you can set a Selenium script to run periodically. If you don’t have cron, you can use a VM (with Vagrant) or Container (with Docker) to get it.
Cron is available on Linux & Unix systems. On Windows, you can use Task Scheduler. On Mac, there is launchd, but it also includes cron (which wraps launchd).
You could also set up a job to run on a schedule using a continuous integration server such as Jenkins. Or write a simple, long running script that runs in the background and sleeps between executions.
I have a service that runs Selenium tests and monitoring for my clients, and use both cron and Jenkins for executing test runs regularly. I also have event-triggered tasks that can be triggered by a checkin or user request.
Each line represents a task with schedule in the following format:
#minute #hour #day #month #weekday #command # perform a task every weekday morning at 7am * 7 * * 1-5 wakeup.sh # perform a task every hour @hourly python selenium-monitor.py
You can edit crontab to create a task by typing
You can view your crontab by typing
If you just want to repeat your task within your script while it’s running, you can add a sleep statement and loop (either over an interval or until you kill the script).
#!/usr/bin/env python from time import sleep from selenium import webdriver sites = ['https://google.com', 'https://bing.com', 'https://duck.com'] interval = 60 #seconds iterations = 10 #times def poll_site(url): driver = webdriver.Chrome() driver.get(url) title = driver.title driver.quit() return title while (iterations > 0): for url in sites: print(poll_site(url)) sleep(interval) iterations -= 1
See the example code on github:
Originally posted on Quora: