Итак, я пытаюсь загрузить файлы из интерфейса веб-приложения базы данных под названием Skyward ... оно очень древнее. Тем не менее, я несколько прибил процесс. Мне было любопытно, есть ли способ для Python Selenium учитывать присутствующую кнопку, а затем, когда новая кнопка становится доступной, нажмите кнопку. Самая большая проблема в том, что время обработки отличается, и у меня нет возможности рассчитать их.
Когда я нажимаю на Экспортировать, открывается окно обработки, которое выглядит так:
Когда кнопка доступна, она будет выглядеть так:
Вот элемент для My Print Queue
:
<a class="button" id="printMsgBtn1" tabindex="5" href="javascript:if (cbs('printMsgBtn1')) {vQPSetup.cancelCheckQueue(); closeMessage(false, 'dPrintMessage'); openMyPrintQueue(); cancelEvent();}" role="button">My Print Queue</a>
Процесс, который нажимает на вышеупомянутый процесс таков:
# Click on id="browsetool_export"
# Opens Options to Download Report
# XPATH = //*[@id='browsetool_export']
element = WebDriverWait(browser, 20).until(
EC.element_to_be_clickable((By.XPATH, "//*[@id='browsetool_export']")))
element.click();
# Click on .xlsx Radio Button
# XPATH = //*[@id='ExCOptXLSX']
element = WebDriverWait(browser, 20).until(
EC.element_to_be_clickable((By.XPATH, "//*[@id='ExCOptXLSX']")))
element.click();
# Click on Export Button
# XPATH = //*[@id='bExport']
element = WebDriverWait(browser, 20).until(
EC.element_to_be_clickable((By.XPATH, "//*[@id='bExport']")))
element.click();
time.sleep(20)
# Click on Download Export Button
# XPATH = //*[@id='printMsgBtn1']
element = WebDriverWait(browser, 20).until(
EC.element_to_be_clickable((By.XPATH, "//*[@id='printMsgBtn1']")))
element.click();
time.sleep(2)
- Как я могу учесть время более динамично?
- Как сделать так, чтобы код нажал кнопку
Download Export File
, когда экспорт завершил обработку, и кнопка My Print Queue
больше не доступна?
Как я могу объяснить это, когда