captcha Scenario 5 — WAF Block with Proxy Rotation Retry
Written by RTILA X Engineering Team
Advanced ~10 min
Prerequisites: captcha/3 captcha/4
What You'll Learn
Combine captcha solving with stealth settings
Real-World Use Case
Achieving high success rates on protected sites
LIVE DEMO
WAF Block Retry
Detect the WAF block, retry with a different proxy, and reach the protected table.
Access Blocked by WAF
Your request has been blocked.
Reference: WAF-2025-001
EXPECTED OUTPUT
WAF Data
| field | value |
|---|---|
| Invoice | INV-2025-001 |
| Amount | $450.00 |
| Client | Acme Corp |
| Due Date | 2025-03-25 |
| Status | Paid |
RTILA X PROJECT JSON
RTILA X Automation Project
waf-proxy-rotation-retry.json
{
"name": "WAF_Proxy_Rotation_Retry",
"settings": {
"urls": [
"https://learn.rtila.com/scenarios/captcha/5"
],
"proxyEnabled": true,
"proxyList": "http://proxy1:8080\nhttp://proxy2:8080"
},
"datasets": {
"waf_data": {
"item_selector": "css=table.waf-content-table tr",
"properties": [
{
"name": "field",
"type": "text",
"selector": "css=td:nth-child(1)"
},
{
"name": "value",
"type": "text",
"selector": "css=td:nth-child(2)"
}
]
}
},
"commands": [
{
"command": "execute_script",
"params": {
"script": "return document.body.innerText.includes('Access Blocked by WAF') ? 'true' : 'false';",
"output_variable": "access_blocked"
}
},
{
"command": "if",
"params": {
"condition": {
"type": "variable_contains",
"variable": "access_blocked",
"value": "true"
},
"then": [
{
"command": "comment",
"params": {
"text": "WAF detected — rotate proxy via retry button"
}
},
{
"command": "click",
"params": {
"selector": "css=#retry-btn"
}
}
],
"else": []
}
},
{
"command": "wait_for_selector",
"params": {
"selector": "css=.waf-content"
}
},
{
"command": "extract_data",
"params": {
"dataset": "waf_data"
}
}
]
} A script condition detects WAF block text and triggers a proxy rotation retry. The second goto request uses the next proxy from the configured list and reaches the real content.
Did you complete this scenario?
Ready to run this automation?
Copy the project JSON above, open RTILA X, create a new project, and paste it.
This scenario covers 2 RTILA X commands and is referenced in 2 learning articles.
Continue Learning
Was this helpful?
Thank you for your feedback!