温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

selenium学习:多窗口切换

发布时间:2020-08-19 05:50:35 来源:网络 阅读:806 作者:91ctt 栏目:软件技术

文件名:test12.py

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"]')关闭登陆弹出框。


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI