UI自动化Selenium 页面窗口window定位切换

Selenium自动化,在操作元素时,一定是基于某个窗口这个前提;我们时常在操作时会出现打开新窗口的情况;如点击新增按钮,打开了新增单据的新页面窗口,接下来要录入单据信息时,必须告诉框架切换到新窗口后,才能操作窗口内的元素;

甚至还需要在几个窗口之间来回切换,要做到这点,我们就需要提前获得各个窗口的句柄,从而判断当前在哪个窗口,接下来要去哪个窗口;

一、页面窗口切换用到的几个方法:

  1. driver.current_window_handle 获取当前窗口handle
  2. driver.window_handles 获取所有窗口的handle,返回list列表
  3. driver.switch_to.window(handle) 切换到对应的窗口
  4. driver.close() 关闭当前窗口

二、窗口切换几种形式:

  • 通过句柄lists下标切换:
# 切换到新页面
def locateNewPage(drObject):
    drObject.switch_to.window(drObject.window_handles[-1])


# 切换到首页面
def locateFirstPage(drObject):
    drObject.switch_to.window(drObject.window_handles[0])


# 切换到倒数第二页面
def locateSecondPage(drObject):
    drObject.switch_to.window(drObject.window_handles[-2])
  • 通过页面title切换:
    # 根据title切换窗口
    # 此封装原理,拿到当前所有页面的handle,然后循环根据当handle拿到页面title,和传入的title进行循环对比;
    def locateWindowTitle2(self, title):
        try:
            time.sleep(5)
            all_h = self.driver.window_handles  # 获得所有窗口句柄
            # 遍历句柄,对比句柄的title
            for i in all_h:
                tl = self.driver.title
                if tl == title:
                    break
                else:
                    self.driver.switch_to.window(i)
        except:
            raise AssertionError("页面切换失败!")
        else:
            pass

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值