diff --git a/assets/CHANGELOG.xlsx b/assets/CHANGELOG.xlsx index 8a57bcd..2779321 100644 Binary files a/assets/CHANGELOG.xlsx and b/assets/CHANGELOG.xlsx differ diff --git a/scripts/altium365_part_request.py b/scripts/altium365_part_request.py index 481552f..0d9e3d0 100644 --- a/scripts/altium365_part_request.py +++ b/scripts/altium365_part_request.py @@ -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", ""))