selenium学习:多窗口切换
文件名:test12.py
市北网站制作公司哪家好,找成都创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站建设等网站项目制作,到程序开发,运营维护。成都创新互联于2013年创立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联。
from selenium import webdriver import time driver = webdriver.Chrome() file_path='http://www.baidu.com' driver.get(file_path) #获取百度搜索窗口句柄 search_windows=driver.current_window_handle driver.find_element_by_link_text('登录').click() driver.find_element_by_link_text('立即注册').click() #获取当前所有打开窗口的句柄 all_handles=driver.window_handles #进入注册窗口 for handle in all_handles: if handle!=search_windows: driver.switch_to.window(handle) print('now register window!') driver.find_element_by_name('userName').send_keys('username') driver.close() time.sleep(2) #回到搜索窗口 for handle in all_handles: if handle == search_windows: driver.switch_to.window(handle) print('now search window') #关闭登陆弹出框 driver.find_element_by_xpath('//*[@id="TANGRAM__PSP_2__titleButtons"]').click() driver.find_element_by_xpath("//input[@id='kw']").send_keys("selenium") driver.find_element_by_id('su').click() time.sleep(2) driver.quit()
上述代码执行的过程是:首先打开百度首页,通过current_window_handle获取当前窗口的句柄,将当期句柄值赋给sreach_windows
通过driver.find_element_by_link_text('登录').click()打开弹出框,
通过driver.find_element_by_link_text('立即注册').click()进入到注册页面
通过driver.window_handles获取当前所有窗口句柄
第一个循环,若当前句柄不等于search_window,则一定不是百度首页,一定是注册窗口,则进行注册操作,注册操作完成后,通过driver.close关闭注册窗口
第二个循环,若为百度首页,则通过switch_to.window切换到百度首页,
通过 driver.find_element_by_xpath('//*[@id="TANGRAM__PSP_2__titleButtons"]')关闭登陆弹出框。
当前名称:selenium学习:多窗口切换
标题来源:http://pwwzsj.com/article/ishsgd.html