selenium - 彈出框死活定位不到


先要確定是不是alert,是才能用,不是的話肯定不能用。

  • 有些彈出框是div層,這種跟平常定位方法一樣

  • 有些彈出框是嵌套的iframe層,這種切換iframe就可以了

  • 有些彈出框比較坑,是嵌入的一個窗口,這就是本篇要講的內容了。

    如下圖這種,看似普通的一個彈出框

    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