selenium+python自动化95-弹出框死活定位不到

Posted jason89

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium+python自动化95-弹出框死活定位不到相关的知识,希望对你有一定的参考价值。

前言

部分小伙伴学了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.找到问题原因,接下来就简单了,先切换到新的窗口上,然后用平常的定位方法就可以了

技术分享图片

以上是关于selenium+python自动化95-弹出框死活定位不到的主要内容,如果未能解决你的问题,请参考以下文章

Selenium2+python自动化47-判断弹出框存在(alert_is_present)

Selenium2+python自动化47-判断弹出框存在(alert_is_present)转载

使用Selenium框架在做Web自动化测试时,如何处理弹出框?

python-selenium -- 弹出框处理

selenium 自动化 插件安装弹出框怎么解决

selenium自动化实施中对windows弹出框的几种常见处理方案