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

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

前言

部分小伙伴学了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

转载地址:http://brxcl.baihongyu.com/

你可能感兴趣的文章
python list的+,+=,append,extend
查看>>
MySQL架构组成之逻辑模块组成
查看>>
DuiVision开发教程(19)-菜单
查看>>
Spark Streaming中的操作函数讲解
查看>>
长尾理论,长尾示意图,读书笔记
查看>>
Testing Is the Engineering Rigor of Software Development
查看>>
01、Spar内核架构原理
查看>>
多协议注入工具t50
查看>>
string类型版本号比较
查看>>
Linux动态库生成与使用指南
查看>>
STM32进入HardFault_Handler处理办法
查看>>
tensorflow笔记:多层LSTM代码分析
查看>>
深入理解javascript函数进阶系列第三篇——函数节流和函数防抖
查看>>
【Spark】SparkStreaming-如何使用checkpoint
查看>>
Django REST framework+Vue 打造生鲜超市(四)
查看>>
maven工程的多环境配置方案(profile)
查看>>
react 使用 moment 进行 日期格式化
查看>>
Node.js调用mysql的存储过程
查看>>
java获取访问路径、域名、项目名、请求入参
查看>>
nginx:not a directory
查看>>