簡體   English   中英

Selenium Python:切換窗口並查找元素

[英]Selenium Python: Switch window and find element

我正在從 URL 下載 Excel 報告。 當我單擊 excel 下載時,會彈出一個新窗口,最初顯示“進行中”消息,然后是“完成”消息。 我想在完成下載后關閉 Chrome 會話。 我正在使用下面的代碼,但不知何故我無法在新窗口上找到元素。 請告知我哪里錯了。 (PS:我不能分享網址)

    #Excel Download
    link = driver.find_elements_by_xpath("//img[@alt='Export to Excel']")[0]
    link.click()
    driver.switch_to_window
    time.sleep (5)
    element = WebDriverWait(driver, 60).until(EC.visibility_of_element_located((By.ID,"_NS__workingMsg")))
    element = WebDriverWait(driver, 60).until(EC.presence_of_element_located((By.XPATH,"//*[text()='Your report is ready and will download to your Web browser in a few moments.']")))
    time.sleep (2)
    driver.close()

在這種情況下,您需要將驅動程序焦點切換到新窗口:

current_handle = driver.window_handles
link = driver.find_elements_by_xpath("//img[@alt='Export to Excel']")[0]
link.click()
new_handle = driver.window_handles
driver.switch_to.window(new_handle[1])

然后您可以在新窗口上執行操作。

更新 1:

要關閉它們,您可以這樣做:

driver.close()

driver.switch_to.window(new_handle[0])

driver.close()

否則,直接這樣做:

driver.quit()

相當將關閉所有實例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM