2016-12-07 46 views
0

難以找到一個元素彈出窗口。嘗試切換幀和窗口無濟於事。元素在原始源代碼中找不到。 len(driver.window_handles)在彈出後也= 1。這是我彈出時激活的嘗試。蟒蛇硒定位阿賈克斯彈出窗口元素

windows = driver.window_handles 
num_of_windows = len(windows) 
print (num_of_windows) 
driver.switch_to_window(driver.window_handles[1]) 
wait.until(lambda driver: driver.find_element_by_css_selector('.suv.suv-deca.suv-open')) 
driver.find_element_by_css_selector('.suv.suv-deca.suv-open').click() 

這裏是顯示在Firebug的HTML

<button class="suv suv-deca suv-open" type="button">Click Here to Continue</button> 
+0

它是什麼樣的彈出?你想怎麼處理它?如果它是一個應用程序本地彈出窗口,請顯示其「HTML」代碼 – Andersson

+0

該代碼是用Im試圖在用螢火蟲驗證後得到driver.find_element_by_css_selector('.suv.suv-deca.suv-open')的HTML代碼。 –

回答

0

如果len(driver.window_handles)結果1,正如你所提到的,然後driver.switch_to_window(driver.window_handles[1]),顯然應該提高http.client.CannotSendRequest例外,因爲只提供一個窗口。儘量只

wait.until(lambda driver: driver.find_element_by_css_selector('.suv.suv-deca.suv-open')) 
driver.find_element_by_css_selector('.suv.suv-deca.suv-open').click() 

而無需切換到窗口,警報等

+0

謝謝,不過那是在我注意到我正在處理一個彈出窗口之前開始的。 –

+0

您的按鈕可以嵌入在'iframe'中。檢查是否有任何'iframe'祖先 – Andersson

+0

我檢查了源代碼,頁面上有一個Iframe,但沒有嵌入它的按鈕。 –