美文网首页
selenium的多窗口处理小结

selenium的多窗口处理小结

作者: 金融测试民工 | 来源:发表于2020-08-06 17:17 被阅读0次

一、前言

1.点击某些链接,会重新打开一个小窗口,对于这种情况,想要在新页面上操作,就得先切换窗口了。

2.获取窗口的唯一标识用句柄表示,所以只需要切换句柄,就可以在多个页面灵活操作了。

二、多窗口处理流程

1.先获取到当前的窗口句柄,self.driver.current_window_handle

2.再获取到所有的窗口句柄,self.driver.window_handles

3.判断是否是想要操作的敞口,如果是,就可以对窗口进行操作,如果不是,跳转到另一个窗口,对另一个窗口进行操作,self.dirver.switch_to.window

三、演示

1.打开百度

2.点击右上角登录

3.点击立即注册

4.切换窗口,输入账号密码

5.切换回来,点击登录

6.输入账号密码,点击登录

完整代码如下:

# -*- coding:utf-8 -*-

# @File:test_window.py

import time

from selenium_test.baseimport Base

class TestWindows(Base):

    def test_window(self):

        self.driver.get("https://www.baidu.com/")

        self.driver.find_element_by_link_text('登录').click()

        print(self.driver.current_window_handle)

    # 点击立即注册

        self.driver.find_element_by_xpath('//*[@id="passport-login-pop-dialog"]/div/div/div/div[3]/a').click()

    print(self.driver.current_window_handle)

    print(self.driver.window_handles)

    windows =self.driver.window_handles

    self.driver.switch_to.window(windows[-1])

    self.driver.find_element_by_id('TANGRAM__PSP_4__userName').send_keys('username')

    self.driver.find_element_by_id('TANGRAM__PSP_4__phone').send_keys('13000000000')

    self.driver.switch_to.window(windows[0])

    self.driver.find_element_by_id('TANGRAM__PSP_11__footerULoginBtn').click()

    self.driver.find_element_by_id('TANGRAM__PSP_11__userName').send_keys('login_username')

    self.driver.find_element_by_id('TANGRAM__PSP_11__password').send_keys('login_password')

    self.driver.find_element_by_id('TANGRAM__PSP_11__submit').click()

    time.sleep(3)

相关文章

网友评论

      本文标题:selenium的多窗口处理小结

      本文链接:https://www.haomeiwen.com/subject/maktdktx.html