The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →To schedule Selenium screenshots, run a script with Selenium, a browser and its compatible driver on your EC2 instance, then start it with the host’s cron service—or use Amazon EventBridge Scheduler to invoke an AWS target that starts the workload. “In India” can mean the instance is hosted in an India region, the schedule follows India local time, or both; these are separate choices. Set and verify the schedule’s time zone explicitly rather than assuming the EC2 region determines it.
Choose where the schedule runs
For a small job on one continuously available EC2 host, cron is the direct option: the instance runs the Selenium script at the configured time. The instance and cron service must be running then. If the instance is stopped, a host cron job cannot run.
As an Amazon Associate I earn from qualifying purchases.
For a centrally managed trigger, Amazon recommends EventBridge Scheduler for scheduled target invocation. Scheduler does not run an arbitrary shell command on an EC2 host by itself: configure a supported AWS target that starts or executes the capture workload, and give Scheduler permission to invoke that target. This separates the schedule from a long-lived shell session, but adds target and IAM configuration. See Amazon EventBridge Scheduler.
| Decision | Host cron | EventBridge Scheduler |
|---|---|---|
| Where the schedule lives | On the EC2 instance | In the managed AWS service |
| What must be available | The instance and cron service at run time | Scheduler, its invocation permissions and a configured target that runs the capture workload |
| Time-zone configuration | The host’s clock and cron configuration | A time zone can be selected for the schedule |
| Operational controls | Arrange host logging and monitoring | AWS documents retries, failed-event retention, flexible time windows, and invocation and target-error metrics |
| Good fit | A simple job on an instance that stays available | A managed trigger integrated with an AWS target |
This is an implementation comparison, not a performance benchmark. AWS describes Scheduler’s schedule types and operational controls in its schedule types documentation.
#1 Best Overall
- 14" diagonal, 1366x768 resolution, HD BrightView LED, Glossy NON-TOUCH Display
Install Selenium, a browser and its driver
Selenium is not a browser by itself. The setup needs a language binding, a browser and a compatible browser driver. Keep the browser and driver versions compatible, and follow the installation guidance for the Linux distribution and browser release you actually choose; no single EC2 image or version-pinning command is appropriate for every host. Selenium lists these as distinct setup components in its Getting started guide.
On a server without a desktop, run Chrome headlessly. The example below uses Python and Selenium’s Chrome options. It creates the output directory, sets a page-load timeout, saves a PNG, and closes the browser even if navigation or capture fails.
from pathlib import Path
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
out = Path('/var/lib/site-captures')
out.mkdir(parents=True, exist_ok=True)
options = Options()
options.add_argument('--headless')
options.add_argument('--window-size=1440,1000')
driver = webdriver.Chrome(options=options)
try:
driver.set_page_load_timeout(60)
driver.get('https://example.com/')
driver.save_screenshot(str(out / 'example.png'))
finally:
driver.quit()
This is an illustrative core, not a tested EC2 image-specific installation recipe. Selenium’s browser documentation shows headless Chrome options and the navigation and screenshot workflow; save_screenshot writes the current browsing context to a PNG path. See Working with windows and tabs and the Selenium getting-started guide.
For a recurring job, improve the example before relying on it:
- Use a timestamp or another unique component in each filename if you need to keep multiple runs; otherwise a fixed filename is overwritten.
- Use explicit waits for page elements or content that appears asynchronously. A successful navigation does not mean delayed content is ready.
- Log each URL, start time, completion time, output path and exception. Record actual run times, not only intended schedule times.
- Run as a restricted operating-system user and ensure that user can write to the output directory.
- Use absolute paths for the interpreter, script and output directory in scheduled commands.
Set the schedule to India local time
Using EventBridge Scheduler
EventBridge Scheduler supports recurring cron and rate schedules as well as one-time schedules. AWS cron expressions have six fields: minute, hour, day-of-month, month, day-of-week and year. A schedule can use a selected time zone; the API field is ScheduleExpressionTimezone. Check the current console or API reference for the exact time-zone identifier accepted before creating a production schedule. AWS documents the field in the CreateSchedule API reference.
If the desired run time is a fixed India-local time, select the appropriate IANA time zone for India (commonly identified as Asia/Kolkata) in the schedule configuration, and verify that AWS accepts it for your schedule. Do not manually convert the time to UTC unless you specifically intend to operate on a UTC schedule. Compute region and schedule time zone are independent: hosting EC2 in India does not, by itself, configure a schedule to use India local time.
Rank #2
- 256 GB SSD of storage.
- Multitasking is easy with 16GB of RAM
- Equipped with a blazing fast Core i5 2.00 GHz processor.
For example, to run daily at 09:00 local time, express the recurring schedule for minute 0 and hour 9, select the verified India time zone, and configure the target to start your capture workload. The target, its permissions, and the script’s runtime environment still need to be configured; the cron expression alone does not execute Selenium.
Using cron on the EC2 host
With cron, configure the host’s time-zone assumption and verify the system clock and cron behavior for the selected operating system. State the intended local run time and audit the host configuration rather than inferring it from the EC2 region. Install the crontab for the same account that owns the script and output directory.
A cron entry should call the intended Python interpreter and script using absolute paths, for example:
0 9 * * * /absolute/path/to/venv/bin/python /absolute/path/to/capture.py >> /var/log/site-capture.log 2>&1
This example expresses 09:00 according to the host’s cron time basis; verify that basis on your instance before using it. Cron often has a smaller environment and a different working directory than an interactive shell, so do not rely on shell aliases or a relative path.
Account for scheduling delay and capture reliability
EventBridge Scheduler does not guarantee that invocation starts precisely at the first second of the selected minute. Allow modest delay, and log actual invocation, start and completion times. If the capture must happen within a narrow operational window, monitor those times and decide what lateness is acceptable. AWS documents invocation timing and troubleshooting guidance in its Scheduler troubleshooting guide.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
For Scheduler-managed jobs, inspect invocation-attempt and target-error metrics. Configure retry limits and failed-event retention or a dead-letter queue where appropriate, and choose a flexible time window deliberately if the task can tolerate one. For cron, arrange equivalent monitoring and alerting on the host; a scheduled command can fail without anyone noticing unless logs and exit status are checked.
Rank #3
- WINDOWS 11 | STABLE PERFORMANCE: Powered by Intel Celeron N4020 processor and Windows 11 system, this laptop delivers stable performance for everyday computing tasks. It supports web browsing, online learning, document editing, email communication, and basic office work with optimized power efficiency, providing a practical and reliable experience for essential daily use for daily use.
- 15.6” FHD IPS DISPLAY: Features a 15.6-inch Full HD IPS display with narrow bezels, offering wider viewing angles and clearer image details compared to standard panels. The improved screen-to-body ratio enhances visual experience for study, reading, document work, and video playback, making it suitable for both productivity and entertainment use.
- 4GB DDR4 + 128GB eMMC STORAGE: Equipped with 4GB DDR4 memory and 128GB eMMC storage for everyday basics such as browsing, documents, email, and online learning platforms. The built-in TF card slot supports storage expansion up to 1TB, giving you more flexibility for files, photos, videos, and daily documents. TF card not included.
- CONNECTIVITY & PORTS: Includes 1× TF card slot, 2× USB 3.2 Gen1 ports, and 2× full-featured Type-C ports (USB 3.2 Gen1). The Type-C ports support data transfer, charging, and video output, enabling flexible connection with external devices such as monitors, storage, and peripherals for daily work and study use.
- LIGHTWEIGHT DESIGN | ONLINE COMMUNICATION: Designed with a slim, portable profile, this laptop is easy to carry for school, commuting, and travel. A built-in 1MP front camera supports online classes, video meetings, remote communication, and everyday conferencing. The 3300mAh battery works with the low-power system design to support practical daily use, while thermal optimization helps maintain quieter operation during extended tasks.
Store screenshots durably and control growth
The example writes to /var/lib/site-captures on the instance. Check free disk space and permissions, choose a retention policy, and rotate or transfer files to durable storage if the local filesystem is ephemeral or constrained. Keep filenames unique when preserving history. Select an EC2 region and instance based on your target websites, workload and data requirements; regional availability, pricing and latency depend on current AWS offerings and are not established here.
Troubleshoot common failures
- The job works in a terminal but not on schedule: cron may use a different PATH, working directory or operating-system account. Run the exact command as the scheduled user, use absolute paths and capture standard output and errors.
- Chrome fails to start: confirm the Selenium binding, browser and driver are installed and compatible, and that headless Chrome launches under the account running the job. Check the browser and driver’s own error output.
- The screenshot is blank or missing late-loaded content: navigation may finish before asynchronous content appears. Add an explicit wait for the relevant element and confirm that it is visible before taking the screenshot.
- The screenshot cannot be saved: verify that the destination directory exists, the scheduled user can write there, and the filesystem has free space.
- Scheduler does not start the workload: verify that the selected target is configured to run the capture process and that Scheduler’s execution role can invoke it. Check invocation and target-error metrics, then review retry and failed-event handling.
- The capture runs at the wrong local time: check the configured schedule time zone for Scheduler or the host clock and cron time basis for a local job. EC2’s region is not a substitute for either setting.
- The job overlaps or misses its expected minute: compare logged start and completion times with the intended schedule, allow for Scheduler’s within-the-minute timing, and decide whether to prevent overlapping runs or accept a tolerance window.
Do not expose a remote WebDriver endpoint publicly. Restrict administrative access to the instance, and respect target websites’ terms and access controls.
Or skip the browser setup
If you do not want to install and maintain Selenium, a browser and a driver on EC2, ScreenshotNeo provides a website screenshot API and MCP server. One GET request returns a screenshot or PDF; its documentation is at ScreenshotNeo docs.
Recommended Free Tools
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com -o shot.webp
ScreenshotNeo removes cookie banners, newsletter popups and chat widgets before capture, and failed loads, bot checks and blank pages are not billed. Its MCP server lets AI agents take screenshots. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000. These are API captures rather than a Selenium job running on your EC2 host, so choose based on whether you need that host-based browser workflow.
Sign up for 1,000 free screenshots a month, with no card required.
Frequently Asked Questions
Does putting EC2 in an India region make EventBridge Scheduler use India time?
No. The compute region and the schedule’s time-zone setting are separate; configure and verify the schedule time zone explicitly.
Can EventBridge Scheduler run a shell command directly on EC2?
Not by itself. It invokes a configured AWS target, which must be set up to start or execute the capture workload.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →What screenshot format does Selenium save in this example?
The Selenium example saves a PNG to the path passed to save_screenshot.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




