Selenium3+python3自动化(四十五)--弹出框死活定位不到

前言

之前学习了alert、confirm、prompt,看到弹出框,要先确定是不是alert(alert弹出框使用F12定位不到),不然的话(switch_to.alert)肯定不能用。

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

如百度的搜索设置,弹出框就是div层,可以直接使用F12定位

 遇到问题

1.如下图这种,看似普通的一个弹出框

 2.F12定位不到,switch_to.alert定位不到,没有iframe,加sleep时间等待仍然无法定位到

解决问题

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

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

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

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

越努力,越幸运!!! good good study,day day up!!!
原文地址:https://www.cnblogs.com/canglongdao/p/13617239.html