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://azwzsj.com/article/ishsgd.html