Как ждать другого элемента, чтобы стать доступным в Python Selenium - PullRequest
0 голосов
/ 06 апреля 2020

Итак, я пытаюсь загрузить файлы из интерфейса веб-приложения базы данных под названием Skyward ... оно очень древнее. Тем не менее, я несколько прибил процесс. Мне было любопытно, есть ли способ для Python Selenium учитывать присутствующую кнопку, а затем, когда новая кнопка становится доступной, нажмите кнопку. Самая большая проблема в том, что время обработки отличается, и у меня нет возможности рассчитать их.

Когда я нажимаю на Экспортировать, открывается окно обработки, которое выглядит так: enter image description here

Когда кнопка доступна, она будет выглядеть так: enter image description here

Вот элемент для 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)
  1. Как я могу учесть время более динамично?
  2. Как сделать так, чтобы код нажал кнопку Download Export File, когда экспорт завершил обработку, и кнопка My Print Queue больше не доступна?

Как я могу объяснить это, когда

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...