博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
selenium+python自动化95-弹出框死活定位不到
阅读量:4510 次
发布时间:2019-06-08

本文共 601 字,大约阅读时间需要 2 分钟。

前言

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

  • 有些弹出框是div层,这种跟平常定位方法一样

  • 有些弹出框是嵌套的iframe层,这种切换iframe就可以了

  • 有些弹出框比较坑,是嵌入的一个窗口,这就是本篇要讲的内容了。

遇到问题

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

1070438-20180404093259978-573433932.png

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

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

解决问题

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

# 作者:上海悠悠# 打印所有的handleall_handles = driver.window_handlesprint(all_handles)# 切换到新的handle上driver.switch_to.window(all_handles[1])

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

1070438-20180404093326515-484101368.png

转载于:https://www.cnblogs.com/yoyoketang/p/8715207.html

你可能感兴趣的文章
[CSS3] :empty Selector
查看>>
webpack4 入门(二)
查看>>
LoadRunner基本简介
查看>>
编写一个模拟注册用户和验证用户登陆的程序
查看>>
jquery 左侧多级菜单 根据xml文件自动生成
查看>>
JS - CommonJS、AMD、CMD
查看>>
Ajax笔记(一)
查看>>
生活网站
查看>>
java-5
查看>>
2019-05-16 Java学习日记 day6
查看>>
中间件
查看>>
Bytom移动端钱包SDK开发基础
查看>>
大龄恐惧症 (zz)
查看>>
MySQL数据分组GROUP BY 和HAVING
查看>>
vim配置成c++IDE
查看>>
iOS开发中APP之间传递信息1--URL Schema(应用程序间互相启动)
查看>>
MyEclipse持续性开发教程:用JPA和Spring管理数据(一)
查看>>
二级域名共享cookiee 无法删除
查看>>
Luogu 3620 数据备份 - Set
查看>>
03 python 初学(字符格式化输出)
查看>>