2016-12-07 47 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,但没有嵌入它的按钮。 –