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.找到問題原因,接下來就簡單了,先切換到新的窗口上,然后用平常的定位方法就可以了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM