task = """1. Go to https://quotes.toscrape.com/2. Use extract_structured_data action with the query "first 3 quotes with their authors"3. Save results to quotes.csv using write_file action4. Do a google search for the first quote and find when it was written"""
When you know exactly what the agent should do, reference actions by name:
Copy
Ask AI
task = """1. Use search_google action to find "Python tutorials"2. Use click_element_by_index to open first result in a new tab 3. Use scroll action to scroll down 2 pages4. Use extract_structured_data to extract the names of the first 5 items 5. Wait for 2 seconds if the page is not loaded, refresh it and wait 10 sec6. Use send_keys action with "Tab Tab ArrowDown Enter" """
3. Handle interaction problems via keyboard navigation
Sometimes buttons can’t be clicked (you found a bug in the library - open an issue).
Good news - often you can work around it with keyboard navigation!
Copy
Ask AI
task = """If the submit button cannot be clicked:1. Use send_keys action with "Tab Tab Enter" to navigate and activate2. Or use send_keys with "ArrowDown ArrowDown Enter" for form submission"""
# When you have custom actions@controller.action("Get 2FA code from authenticator app")async def get_2fa_code(): # Your implementation passtask = """Login with 2FA:1. Enter username/password2. When prompted for 2FA, use get_2fa_code action3. NEVER try to extract 2FA codes from the page manually4. ALWAYS use the get_2fa_code action for authentication codes"""
task = """Robust data extraction:1. Go to openai.com to find their CEO2. If navigation fails due to anti-bot protection: - Use google search to find the CEO3. If page times out, use go_back and try alternative approach"""
The key to effective prompting is being specific about actions.