Part Request submitter: retry cold first navigation (avoids transient timeout on first component)
parent
37b5992b0e
commit
1b906dc51a
Binary file not shown.
|
|
@ -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")
|
||||
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)
|
||||
except TimeoutException:
|
||||
url = driver.current_url
|
||||
if any(k in url.lower() for k in ("auth.altium.com", "signin", "login", "oauth")):
|
||||
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", ""))
|
||||
|
|
|
|||
Loading…
Reference in New Issue