Part Request submitter: retry cold first navigation (avoids transient timeout on first component)

main
admin 2026-07-15 07:21:24 +00:00
parent 37b5992b0e
commit 1b906dc51a
No known key found for this signature in database
2 changed files with 15 additions and 7 deletions

Binary file not shown.

View File

@ -122,18 +122,26 @@ def _attach_files(driver, files):
def submit_request(driver, base, req, no_submit=False):
driver.get(f"{base}/partrequestsmanagement/Tasks/Add")
try:
_wait(driver, EC.presence_of_element_located((By.ID, "Manufacturer")), t=20)
except TimeoutException:
url = driver.current_url
if any(k in url.lower() for k in ("auth.altium.com", "signin", "login", "oauth")):
url = f"{base}/partrequestsmanagement/Tasks/Add"
err = None
for attempt in range(3): # retry: first nav can be slow/cold
driver.get(url)
try:
_wait(driver, EC.presence_of_element_located((By.ID, "Manufacturer")), t=20)
err = None
break
except TimeoutException as e:
err = e
time.sleep(2)
if err is not None:
cur = driver.current_url
if any(k in cur.lower() for k in ("auth.altium.com", "signin", "login", "oauth")):
raise RuntimeError(
"NOT SIGNED IN — this Chrome (the one on the debug port) is on the Altium login "
"page, so the form never loaded. Open that same Chrome profile, sign into the "
"Workspace (keep me signed in), leave it open, and re-run.")
raise RuntimeError(f"The 'Add new request' form did not load (no #Manufacturer field). "
f"Current page URL: {url}")
f"Current page URL: {cur}")
_set_text(driver, By.ID, "Manufacturer", req.get("manufacturer", ""))
_set_text(driver, By.ID, "ManufacturerPartNumbers", req.get("mpn", ""))
_set_text(driver, By.ID, "Description", req.get("description", ""))