Wpis z mikrobloga

Cześć, piszę sobie skrypt automatyzujący pobieranie listy produktów do pliku .xlsx z Business Central. Narazie droga którą ide to Selenium i wykładam się na ostatnich dwóch krokach (naciśnięcie Share -> naciśnięcie Open in Excel). Skrypt otwiera żądaną strone, autoryzuje się przy pomocy danych, lista się ładuje i... nic. W zasadzie w ogóle jakby nie widzi tego przycisku Share, mimo że XPATH w Inspektorze Chrome lokalizuje to co chce bez problemu. Poniżej kod.

with webdriver.Chrome() as driver:
driver.get(target_url)

# Explicit wait for the login form to be present
login_box = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.XPATH, '//input[@name="loginfmt"]')))
login_box.send_keys(login_email, Keys.ENTER)

# Explicit wait for the password field to be present
password_box = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.XPATH, '//input[@name="passwd"]')))
password_box.send_keys(password)

# Explicit wait for the submit button to be clickable
submit_button = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.XPATH, '//input[@data-report-event="Signin_Submit"]')))
submit_button.click()

# Explicit wait for the 'Don't Keep me Logged In' button to be clickable
dont_keep_logged_in_button = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.ID, "idBtn_Back")))
dont_keep_logged_in_button.click()

# Explicit wait for the 'Share' button to be visible and clickable
share_button = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '//i[@data-icon-name="Share"]')))

share_button.click()

print("Share button clicked successfully.")

driver.quit()
print("Driver successfully closed.")

Tak jak mówiłem, skrypt wchodzi na strone i się wiesza, następuje timeout i tyle.
Czy macie pomysł jak można to poprawić albo co może być przyczyną?

#python #programowanie #selenium
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

  • 0
@klinaklinem: Zdaje się że sharebutton jest niewidoczny dla skryptu ponieważ wpada timeout przy szukaniu.

File "C:\Users\User\Desktop\Code\Material List Automation\ParseBCItemList.py", line 36, in <module>
share_button = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '//i[@data-icon-name="Share"]')))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\selenium\webdriver\support\wait.py", line
nevill - @klinaklinem: Zdaje się że sharebutton jest niewidoczny dla skryptu ponieważ...

źródło: Screenshot_1

Pobierz
  • Odpowiedz