如何等待另一个元素在Python Selenium中可用

2024-10-03 06:23:57 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我正试图从名为Skyward的数据库Web应用程序的前端下载文件……这是非常古老的。然而,我已经确定了这个过程。我很好奇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按钮不再可用

我怎么解释呢,什么时候


Tags: tobrowseridbyonelementbe按钮