import time
from playwright.sync_api import sync_playwright, TimeoutError as PlaywrightTimeoutError
SITE_URL = "https://YOUR-SITE-URL-HERE"
EMAIL = "kishan-a.srivastava@db.com"
PASSWORD = "abc123"
def wait_for_page(page, timeout=120_000):
try:
page.wait_for_load_state("domcontentloaded", timeout=timeout)
except PlaywrightTimeoutError:
print("Page is taking longer than expected to load...")
print("Continuing anyway.")
with sync_playwright() as p:
browser = p.chromium.launch(
headless=False,
slow_mo=100
)
page = browser.new_page()
page.set_default_timeout(60_000)
page.set_default_navigation_timeout(120_000)
print("Opening website...")
page.goto(
SITE_URL,
wait_until="domcontentloaded",
timeout=120_000
)
print("Website opened.")
print("Looking for 'Continue with DWS UAT'...")
continue_button = page.locator(
'button[type="submit"]'
).filter(
has_text="Continue with DWS UAT"
)
continue_button.wait_for(state="visible")
continue_button.click()
print("Clicked 'Continue with DWS UAT'.")
wait_for_page(page)
print("Waiting for email field...")
email_field = page.locator(
'input#i0116[type="email"]'
)
email_field.wait_for(state="visible")
email_field.fill(EMAIL)
print("Email entered.")
next_button = page.locator(
'input#idSIButton9[type="submit"]'
)
next_button.wait_for(state="visible")
next_button.click()
print("Next clicked.")
wait_for_page(page)
print("Waiting for password field...")
password_field = page.locator(
'input#i0118[type="password"]'
)
try:
password_field.wait_for(
state="visible",
timeout=60_000
)
except PlaywrightTimeoutError:
print()
print("Password field has not appeared yet.")
print("A company verification/MFA step may be running.")
print("Complete the verification manually if required.")
print("Waiting for the password field...")
print()
password_field.wait_for(
state="visible",
timeout=300_000
)
print("Password field found.")
password_field.fill(PASSWORD)
print("Password entered.")
submit_button = page.locator(
'input#idSIButton9[type="submit"]'
)
submit_button.wait_for(state="visible")
submit_button.click()
print("Password submitted.")
print("Waiting for final page to load...")
wait_for_page(page, timeout=120_000)
time.sleep(5)
print()
print("==========================================")
print("LOGIN FLOW COMPLETED")
print("==========================================")
print("Current URL:")
print(page.url)
print()
print("Browser will remain open for 30 seconds...")
time.sleep(30)
browser.close()
For further actions, you may consider blocking this person and/or reporting abuse
Top comments (0)