Author SHA1 Message Date
TheRaiwy 146609bbae Use CDP (execute_cdp_cmd) to set httpOnly cookie with fallback
tests / test (push) Successful in 5s
tests / release (push) Successful in 5s
2026-07-10 20:38:42 +03:00
TheRaiwy cd712e992d Fix cookie login: add path/secure attrs, check auth before setting
tests / test (push) Successful in 5s
tests / release (push) Successful in 5s
2026-07-10 19:56:23 +03:00
TheRaiwy 872acb8449 Dismiss modal dialogs before interacting with login form
tests / test (push) Successful in 6s
tests / release (push) Successful in 5s
2026-07-10 19:55:10 +03:00
+23 -5
View File
@@ -311,12 +311,19 @@ def _cookie_login(driver, cookie: str) -> bool:
except Exception:
pass
try:
driver.add_cookie({"name": ".ROBLOSECURITY", "value": cookie, "domain": ".roblox.com"})
driver.get("https://www.roblox.com/home")
time.sleep(3)
return "/login" not in driver.current_url
driver.execute_cdp_cmd("Network.setCookie", {
"name": ".ROBLOSECURITY",
"value": cookie,
"domain": ".roblox.com",
"path": "/",
"secure": True,
"httpOnly": True,
})
except Exception:
return False
driver.add_cookie({"name": ".ROBLOSECURITY", "value": cookie, "domain": ".roblox.com"})
driver.get("https://www.roblox.com/home")
time.sleep(4)
return "/login" not in driver.current_url
def process_account(driver, acc: dict, donor_video: Path | None,
@@ -346,6 +353,17 @@ def process_account(driver, acc: dict, donor_video: Path | None,
except Exception:
pass
# close any modal dialogs blocking the login form
for _ in range(10):
try:
modal = driver.find_element(By.XPATH, "//h4[@class='modal-title']/ancestor::div[contains(@class, 'modal')]")
close_btn = modal.find_element(By.XPATH, ".//button[contains(@class, 'close')]")
close_btn.click()
log.info("Dismissed login modal")
time.sleep(1)
except Exception:
break
username_input = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, "login-username")))
ActionChains(driver).move_to_element(username_input).pause(0.3).perform()
time.sleep(0.1); username_input.click(); time.sleep(0.1); username_input.clear()