使用硒webdriver截取頁面時,會彈出一個「彈出窗口」。關閉硒中的通用彈出框
在打開頁面時,http://www.fanatics.com/search/red%20shoes - 我看到一個彈出窗口,其中包含xpath'// * [@ id =「mm_DesktopInterstitialImage」]' - 但我不想使用xpath關閉此警報,一些可以消除/關閉警報的genric。 這是我試過到目前爲止 - :
from selenium import webdriver
import os
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
chromedriver = "/usr/local/CHROMEDRIVER"
desired_capabilities=DesiredCapabilities.CHROME
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver,desired_capabilities=desired_capabilities)
url='http://www.fanatics.com/search/red%20shoes'
driver.get(url)
#driver.set_page_load_timeout(300)
driver.implicitly_wait(60)
alert = driver.switch_to_alert()
alert.dismiss
handle=driver.window_handles
print handle
#[u'CDwindow-B1E9C127-719D-ACAA-19DE-1A6FA265A4FF']
從我從相關實例理解,鄉親們平時切換窗口句柄,但我的手柄有一個單一的element.ie,driver.switch_to_window(driver.window_handles[1])
然後driver.close()
最後再轉向使用driver.switch_to_window(driver.window_handles[1])
我還使用了隱式等待,因爲我不確定,如果警報窗口正在被讀取 - 但這也不起作用。如果可能的話,我不會對xpath進行硬編碼。
我在做什麼錯?
相關,但對我開不工作:Selenium python how to close a pop up window?
路易是絕對正確的,它不是可以使用開關來警告處理一個警告窗口。所以你需要使用關閉按鈕關閉彈出的div。 – 2014-12-03 11:47:51