web 页面操作的时候经常会遇到一闪而过的 dialog 消息,这些提示语一般只出现了几秒, 过后元素节点就会在 DOM 中消失了。
    本篇讲解下用 chrome 浏览器如何定位一闪而过的 dialog 消息

    当点保存按钮后,页面弹出保存成功的提示框,这个提示框过 1-2 秒会自动消失

    【Python selenium】一闪而过的dialog如何定位 - 图1

    首先我们需要定位到此元素上,查看元素的属性相关信息,按 f12 后鼠标还没来得及指上去就消失了,或者刚指上去,dom 里面的元素就不见了。

    打开 chrome 浏览器,f12 后查看,打开 Source 项,在右侧有个暂停按钮,如下图

    【Python selenium】一闪而过的dialog如何定位 - 图2

    当 dialog 提示语出现的时候,点下暂停按钮,此时页面就不会动了

    【Python selenium】一闪而过的dialog如何定位 - 图3

    于是就可以在 Elements 里面用鼠标指到 dialog 元素上了
    【Python selenium】一闪而过的dialog如何定位 - 图4

    元素相关信息

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

    获取 dialog 的时候,先定位该元素,通过上面抓出来的元素信息 <h2> 个人信息修改成功!</h2>
    定位这个元素的话,它没什么属性,但是可以定位它上面的一层 div, 甚至再上一层的 class="successbox dialogbox" id="jsSuccessTips" 这 2 个属性定位

    1. from selenium import webdriver
    2. import time
    3. driver = webdriver.Chrome()
    4. driver.get("http://x.x.x.x:8000/users/login/")
    5. driver.find_element_by_id("jsEditUserBtn").click()
    6. time.sleep(0.2)
    7. dialog = driver.find_element_by_css_selector("#jsSuccessTips>.cont").text
    8. print(dialog)

    打印结果:个人信息修改成功!