【发布时间】:2020-08-02 12:40:38
【问题描述】:
所以我正在尝试从名为 Skyward 的数据库 Web 应用程序的前端下载文件……它非常古老。但是,我已经确定了这个过程。我很好奇 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按钮不再可用?
我该如何解释,何时
【问题讨论】:
-
您可以使用等待文本导出数据:安全用户可见,然后单击下载导出文件。等待也是非常动态的,因为它是按增量进行的。
-
@arundeepchohan 我该怎么做呢?
-
@arundeepchohan 我试过
element = WebDriverWait(browser, 20).until( EC.text_to_be_present_in_element((By.ID, "printMsgBtn1"), "Download Export File")) element.click();,但似乎没有用 -
element = WebDriverWait(driver, 20).until( BC.element_to_be_clickable((By.XPATH, "//button[contains(text(), '下载导出文件')]"))) .click()
-
这个呢?
标签: python python-3.x selenium selenium-webdriver selenium-chromedriver