抓取一闪而过的提示消息文本

前端业务操作出现一闪而过的message提示信息,它们有一个特点就是显示1-2s后会自动消失,例如下图1:

 

图1

这些消息不像 alert (警告框)、confirm (确认框 )和prompt (提示框)那样,需要用户手动点击确定或取消按钮后才消失。

 由于Selenium WebDriver 只会与可见元素交互,在上图中提示消息消失后,webdriver无法获取这些提示消息的定位以及文本内容。想解决这样的问题就需要从两点出发,一:如何获取这些提示消息的位置;二:如何获取这些消息的文本信息。

解决办法如下:

一、获取提示消息的定位

如一条成功消息

1.1打开网页将按F12键进入浏览器的调试模式,选择source,右边操作栏会出现暂停按钮如下图(图2):

图2

 1.2 点击前端操作按钮,如下图的“成功”,点击按钮后会出现提示消息“恭喜你,这是一条陈宫消息”,在这条信息消失前,我们需要点击(图1)的暂停按钮,页面的提示消息就不会消失,如下图3:

图3

1.3经过上一步的操作,浏览器此刻进入调试模式,我们点击浏览器右边的“Elements” 按钮,寻找提示消息合适的定位方法,如下图4:

 图4

 二、获取消息的文本信息

这类提示消息虽然在1-2s后会自动消失,但当我们把鼠标悬停在这些消息上时,它们不会消失,直到鼠标离开。为了获取它们的文本,我们在脚本中必须使用鼠标悬停方法,使鼠标一直悬停在提示消息位置,再让driver获取它的文本。python脚本示例如下:
 

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains


driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://element.eleme.cn/#/zh-CN/component/message')

driver.find_element_by_xpath('//*[@id="app"]/div[2]/div/div[1]/div/div/div[2]/section/div[2]/div[1]/div/button[1]').click()

action_chains = ActionChains(driver)

loc = driver.find_element_by_css_selector('.el-message--success')
action_chains.move_to_element(loc).perform()

message = loc.text

print(message)

运行结果:

 

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值