【问题标题】:How To Wait on Another Element to Become Available in Python Selenium如何等待另一个元素在 Python Selenium 中可用
【发布时间】: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)
  1. 如何更动态地考虑时间?
  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


【解决方案1】:

有时很难找到最佳选择器或等待类型。我建议使用 Selenium IDE。也请看这里

Problem Selecting Okay Button with Python and Selenium

【讨论】:

    猜你喜欢
    • 2019-05-31
    • 1970-01-01
    • 2016-12-29
    • 2013-08-06
    • 2019-10-16
    • 2014-03-05
    • 2014-05-07
    • 2017-08-14
    • 2015-11-30
    相关资源
    最近更新 更多