使用Selenium切换到python中的弹出窗口 [英] Switch to popup in python using selenium

查看:554
本文介绍了使用Selenium切换到python中的弹出窗口的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在下面的硒程序中切换到弹出窗口.我一直在寻找所有可能的解决方案,但始终无法解决.请帮忙!

How do I switch to a popup window in the below selenium program. I've looked up for all possible solutions but haven't been able to get my head around them. Please help!!

from selenium import webdriver
from splinter import Browser
from selenium.webdriver.common.keys import Keys
handle = []
driver = webdriver.Firefox()
driver.get("http://example.com/test.aspx")

driver.find_element_by_link_text("Site Actions").click()
driver.find_element_by_link_text('Edit Page').click()
select = driver.find_element_by_id('ctl00_PlaceHolderMain_ctl35_ctl00_SelectResult')
for option in select.find_elements_by_xpath('//*[@id="ctl00_PlaceHolderMain_ctl35_ctl00_SelectResult"]/option'):
            if option.text != 'Channel':
                option.select() # select() in earlier versions of webdriver

driver.find_element_by_id('ctl00_PlaceHolderMain_ctl35_ctl00_RemoveButton').click()

parent_h = driver.current_window_handle

#click that activates the popup.
checkIn = driver.find_element_by_id('qaCheckin_anchor').click()

# click on the link that opens a new window
handles = driver.window_handles # before the pop-up window closes
driver.remove(parent_h)
driver.switch_to_window(handles.pop())
driver.implicitly_wait(10) # seconds
driver.find_element_by_xpath('/html/body/form/div[3]/table/tbody/tr[4]/td/table/tbody/tr[3]/td[2]/input').click()
driver.find_element_by_name('btnClose2').click()
driver.close();
# do stuff in the popup
# popup window closes
driver.switch_to_window(parent_h)
# and you're back

driver.switch_to_default_content()

推荐答案

在浏览器方面,弹出的不是窗口,而是警报.因此,您应该使用以下代码:

in terms of browser, pop up is not a window, it is an alert. so, you should use following:

driver.switch_to_alert()

这篇关于使用Selenium切换到python中的弹出窗口的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆