selenium+python自動化103-一閃而過的dialog如何定位


前言

web頁面操作的時候經常會遇到一閃而過的 dialog 消息,這些提示語一般只出現了幾秒,過后元素節點就會在DOM中消失了。
本篇講解下用chrome 瀏覽器如何定位一閃而過的 dialog 消息

dialog 場景

當點保存按鈕后,頁面彈出保存成功的提示框,這個提示框過1-2秒會自動消失

首先我們需要定位到此元素上,查看元素的屬性相關信息,按f12 后鼠標還沒來得及指上去就消失了,或者剛指上去,dom里面的元素就不見了。

暫停 dialog

打開chrome 瀏覽器,f12 后查看,打開 Source 項,在右側有個暫停按鈕,如下圖

當 dialog 提示語出現的時候,點下暫停按鈕,此時頁面就不會動了

於是就可以在 Elements 里面用鼠標指到 dialog 元素上了

元素相關信息

<div class="successbox dialogbox" id="jsSuccessTips" style="display: block; margin-top: 93.5px;">
            <h1>保存成功</h1>
            <div class="close jsCloseDialog"><img src="/static/images/dig_close.png"></div>
            <div class="cont">
                <h2>個人信息修改成功!</h2>
                <p></p>
            </div>
        </div>

代碼實現

獲取dialog的時候,先定位該元素,通過上面抓出來的元素信息 <h2>個人信息修改成功!</h2>
定位這個元素的話,它沒什么屬性,但是可以定位它上面的一層div,甚至再上一層的 class="successbox dialogbox" id="jsSuccessTips" 這2個屬性定位

from selenium import webdriver
import time
# 作者-上海悠悠 QQ交流群:717225969
# blog地址 https://www.cnblogs.com/yoyoketang/


driver = webdriver.Chrome()
driver.get("http://x.x.x.x:8000/users/login/")

# 前面操作省略,進入到保存頁面

# 點保存按鈕
driver.find_element_by_id("jsEditUserBtn").click()

# 點擊保存按鈕后,dialog 不會立馬出現會有一點點的延遲,可以先sleep下
time.sleep(0.2)
# 定位dialog 用css的層級定位
dialog = driver.find_element_by_css_selector("#jsSuccessTips>.cont").text
print(dialog)

打印結果:個人信息修改成功!



視頻課程點我 ->立即參與


免責聲明!

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



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