[英]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.