美文网首页
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