专栏首页从零开始学自动化测试selenium+python自动化94-弹出层死活定位不到

selenium+python自动化94-弹出层死活定位不到

前言

部分小伙伴学了selenium的alert后,就不管啥弹出框都去用alert,这是行不通的,看到弹出框,先要确定是不是alert,是才能用,不是的话肯定不能用。

  • 有些弹出框是div层,这种跟平常定位方法一样
  • 有些弹出框是嵌套的iframe层,这种切换iframe就可以了
  • 有些弹出框比较坑,是嵌入的一个窗口,这就是本篇要讲的内容了。

遇到问题

1.最近有小伙伴遇到一个弹出框的定位,如下图这种,看似普通的一个弹出框

2.遇到这个问题做了以下尝试:

  • 首先,这种肯定不是alert,所以不能用alert去定位
  • 然后看看是不是有iframe,查看元素后,发现没有iframe
  • 前面加了sleep时间等待也无法解决

解决问题

1.通过打印获取全部的窗口,发现居然打印的是两个handle,也就是说,这个表面上看起来是一个窗口,实际上内嵌了另外一个窗口了。

# 作者:上海悠悠

# 打印所有的handle
all_handles = driver.window_handles
print(all_handles)

# 切换到新的handle上
driver.switch_to.window(all_handles[1])

2.找到问题原因,接下来就简单了,先切换到新的窗口上,然后用平常的定位方法就可以了

本文分享自微信公众号 - 从零开始学自动化测试(yoyoketang),作者:YOYO

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-04-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 关于面试总结8-http协议相关面试题

    在PC浏览器的地址栏输入一串URL,然后按Enter键这个页面渲染出来,这个过程中都发生了什么事?这个是很多面试官喜欢问的一个问题 如果测试只是停留在表面上点点...

    上海-悠悠
  • python测试开发django-9.使用navicat连接mysql

    前言 navicat 是一个连接数据库的可视化工具,可以连接mysql和oracle做一些简单增删改查,对于初学者来说非常方便的

    上海-悠悠
  • python笔记18-sort和sorted区别

    python的排序有两个方法,一个是list对象的sort方法,另外一个是builtin函数里面sorted,主要区别:

    上海-悠悠
  • 为什么部分看起来不太复杂的网站,比如Facebook需要大量顶尖高手来开发?

    网站的复杂度不是只能看表面的文章,网站背后是强大的负载能力,以及强大的数据处理能力才是网站背后的技术核心,像国内的大型互联网公司都有自己的网站的研发团队,而且网...

    程序员互动联盟
  • 解决异常:eclipse项目中程序没错却有红叉

    桑鱼
  • 「 神器 」用得贼舒服的压缩/解压缩工具

    压缩/解压缩软件是电脑上必备软件,大多数人都是用的WinRAR / WinZip,但其实它们都是收费软件,与其盗版,不如找个好用的正品。

    KEN DO EVERTHING
  • Web-第七天 HTTP&Tomcat学习

    HTTP协议:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。用于定义WEB浏览器与WE...

    Java帮帮
  • 可以跟风不看好瑞幸,但真该相信浑水这份方法论偏差的报告吗?

    能在疫情的信息海洋中冒出头,一度成为业界关注焦点的东西不多,浑水做空瑞幸咖啡算是其中之一。

    曾响铃
  • GAN掉马赛克、变脸、戏弄AI,这场GeekPwn黑客趴还有老司机带路

    GeekPwn虽然是一场黑客趴,但也非常适合普通用户来参与,尤其是在蒋昌建老师这位老司机带路的情况下。10月24日,草榴节……呸!程序员节,来自全国各地还有部分...

    FB客服
  • 最大公约数和最小公倍数

    首先来回忆一下什么叫最大公约数:指两个或多个整数共有约数中最大的一个。比如60和24,60的约数有[1,2,3,4,5,6,10,12,15,20,30,60]...

    贪挽懒月

扫码关注云+社区

领取腾讯云代金券