fix: update DDMA eligibility check worker for new deltadentalma.com sign-in and search flow

Delta Dental MA moved their provider login from providers.deltadentalma.com/onboarding
to www.deltadentalma.com/sign-in with new form field selectors, and moved eligibility
search behind a "Group/Health Connector" search page keyed by subscriber ID + birthdate
instead of the old member-search form. Updates login, OTP/MFA handling, and member
search/selection across the eligibility and claim DDMA workers and their session helpers.
This commit is contained in:
2026-07-04 22:57:59 -04:00
parent 79bae13f35
commit 877feb32fa
5 changed files with 194 additions and 276 deletions

View File

@@ -130,17 +130,12 @@ async def start_ddma_claim_run(sid: str, data: dict, url: str):
if otp_value:
print(f"[DDMA Claim OTP poll {poll+1}] OTP received from app, typing it in...")
try:
otp_input = driver.find_element(By.XPATH,
"//input[contains(@aria-label,'Verification') or "
"contains(@placeholder,'verification') or @type='tel' or "
"contains(@aria-lable,'Verification code') or "
"contains(@placeholder,'Enter your verification code')]"
)
otp_input = driver.find_element(By.XPATH, "//input[@data-test-id='MfaCode']")
otp_input.clear()
otp_input.send_keys(otp_value)
try:
verify_btn = driver.find_element(By.XPATH,
"//button[@type='button' and @aria-label='Verify']")
"//button[@data-test-id='ConfirmSubmitButton']")
verify_btn.click()
except Exception:
otp_input.send_keys("\n")
@@ -167,17 +162,14 @@ async def start_ddma_claim_run(sid: str, data: dict, url: str):
# Check if OTP input still visible (user hasn't finished)
try:
driver.find_element(By.XPATH,
"//input[contains(@aria-label,'Verification') or "
"contains(@placeholder,'verification') or @type='tel']"
)
driver.find_element(By.XPATH, "//input[@data-test-id='MfaCode']")
print(f"[DDMA Claim OTP poll {poll+1}] OTP input still visible — waiting...")
except Exception:
# OTP input gone — try navigating to members
if "onboarding" in current_url or "start" in current_url:
if "sign-in" in current_url:
print("[DDMA Claim OTP] OTP input gone, navigating to members page...")
try:
driver.get("https://providers.deltadentalma.com/members")
driver.get("https://www.deltadentalma.com/private/provider/dashboard")
await asyncio.sleep(2)
except Exception:
pass
@@ -189,7 +181,7 @@ async def start_ddma_claim_run(sid: str, data: dict, url: str):
# Final attempt — navigate directly to members page
try:
print("[DDMA Claim OTP] Final attempt — navigating to members page...")
driver.get("https://providers.deltadentalma.com/members")
driver.get("https://www.deltadentalma.com/private/provider/dashboard")
await asyncio.sleep(3)
WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.XPATH, '//input[@placeholder="Search by member ID"]'))