Documentation
Everything you need to monitor websites for changes.
Quick Start
1. Create an account at webwatchr.io/register
2. Add a URL to monitor
3. Choose monitoring mode:
• Visual - Compares screenshots (layout, images, styling)
• Text - Compares text content (prices, articles)
4. Set check frequency and you're done
Monitoring Modes
Visual Mode
Compares screenshots to detect visual changes. Best for:
• Design and layout changes
• Ad placement monitoring
• Image updates
• Styling modifications
Text Mode
Compares text content to detect wording changes. Best for:
• Price monitoring
• News and article updates
• Product availability
• Content changes
Job Settings
Interval
How often to check for changes.
Options: Every 5, 10, 15, 30 minutes • 1, 3, 6, 12 hours • 1 day • 1 week
Threshold
Change sensitivity level.
• Any Change - Triggers alert on any pixel change
• Small Change - Very sensitive to minor differences
• Medium Change - Moderate sensitivity (recommended)
• Large Change - Only alerts on significant changes
Wait Time
Delay before capturing the page.
Options: 0, 3, or 6 seconds
Disable JavaScript
Load the page without JavaScript execution. Useful for static content or faster loading.
Actions
Actions execute before capturing the page. Maximum 12 per job.
Click
Click elements on the page
Type
Enter text into input fields
Delete Element
Remove elements from the page
Wait
Pause between actions
Cookie
Set browser cookies
Local Storage
Set localStorage values
Reload
Refresh the page
XPath Selectors
XPath selectors target specific elements on web pages.
Getting XPath from Browser
1. Right-click element → Inspect
2. In DevTools, right-click HTML → Copy → Copy XPath
Visual Selector
1. Click the visual selector button when creating an action
2. Clickable elements will be highlighted
3. Click the element you want to target
4. XPath is automatically generated
Testing XPath
Open browser console (F12) and run:
$x("//your-xpath-here")If it returns the element, your XPath works.
Common Patterns
//button[@id='submit'] - By ID
//a[contains(text(), 'Login')] - By text
//input[@type='email'] - By attribute
//*[contains(@class, 'btn')] - By partial class
//div[@data-testid='header'] - By data attribute
Tips
• Use stable attributes like id or data-*
• Avoid dynamic IDs that change on each load
• Test in browser console before using
Import Jobs
Bulk create jobs via JSON file or paste.
How to Import
1. Go to Dashboard → Import Jobs
2. Upload a JSON file or paste JSON
3. Review the preview
4. Click Import
JSON Format
{
"jobs": [
{
"jobURL": "https://example.com",
"monitoringMode": "visual",
"actions": {
"interval": 30,
"threshold": 0.1,
"waitFor": 3,
"disableJS": false,
"actions": []
}
}
]
}With Actions
{
"jobs": [
{
"jobURL": "https://example.com/page",
"monitoringMode": "text",
"actions": {
"interval": 60,
"threshold": 0,
"waitFor": 3,
"actions": [
{ "type": "click", "xpath": "//button[@id='load']" },
{ "type": "wait", "duration": 3 },
{ "type": "delete", "xpath": "//div[@class='popup']" }
]
}
}
]
}Limits
• Max file size: 1MB
• Max jobs per import: 100
• Max actions per job: 12
Troubleshooting
Job Not Running
• Check job is active (not paused)
• Verify URL is accessible
• Check for JavaScript errors if disableJS is false
No Changes Detected
• Lower threshold for higher sensitivity
• Increase wait time for slow-loading pages
• Use visual mode for layout changes
XPath Not Working
• Test in browser console with $x()
• Check for dynamic IDs that change on each load
• Use data-* attributes or text content instead
Actions Failing
• Add Wait action before interactions
• Verify element exists when action runs
• Check XPath targets the correct element
Need Help?
Contact us for support.
