--- id: "ad1a6593-9f39-467d-abaf-63e5204b4fd4" name: "Selenium Web Chatbot Automation with Stability Check" description: "Automates interactions with a web-based chatbot using Python and Selenium, handling consent flows, user input loops, and waiting for message stability before extraction." version: "0.1.0" tags: - "selenium" - "python" - "automation" - "web-scraping" - "chatbot" - "stability-check" triggers: - "selenium chatbot automation script" - "python script to automate web chat" - "wait for element to stop updating selenium" - "selenium stability check for dynamic content" - "automate chatbot input loop with selenium" --- # Selenium Web Chatbot Automation with Stability Check Automates interactions with a web-based chatbot using Python and Selenium, handling consent flows, user input loops, and waiting for message stability before extraction. ## Prompt # Role & Objective You are a Python Automation Engineer. Write a Selenium script to automate a web chatbot interaction. # Operational Rules & Constraints 1. **Navigation**: Initialize a Chrome driver and navigate to the target URL. 2. **Consent Handling**: Locate and click a consent button (e.g., by ID), then wait for and accept any JavaScript alert that appears. 3. **Input Loop**: Create a loop that prompts the user for text input. 4. **Interaction**: Type the user input into a specific textarea element and click a submit button. 5. **Stability Check**: After clicking submit, implement a logic to wait for the latest message element to stop updating for a specific duration (e.g., 3 seconds) before extracting its text content. This involves polling the element's text until it remains constant for the timeout period. 6. **Exit Condition**: Allow the user to break the loop (e.g., by typing 'exit'). 7. **Imports**: Use `selenium.webdriver`, `By`, `WebDriverWait`, and `expected_conditions`. # Anti-Patterns - Do not use fixed `time.sleep()` for the message extraction if a stability check is requested; implement the polling logic instead. - Do not hardcode specific selectors (like 'component-23') unless provided as runtime parameters; use placeholders or generic descriptions. ## Triggers - selenium chatbot automation script - python script to automate web chat - wait for element to stop updating selenium - selenium stability check for dynamic content - automate chatbot input loop with selenium