selenium自动化:web页面定位toast,获取toast消息文本

1、什么是toast?

toast属于一种轻量级的反馈,常常以小弹框的形式出现,一般出现1到3秒会自动消失,可以出现在屏幕上中下任意位置,首先来看下web页面上的toast是什么样子的。

2、定位toast

这种toast,往往就存在3秒中左右,3秒中,打开浏览器这些内容都没了,怎么定位呢?安静给大家介绍一个小技巧。打开chrome进入F12页面进入到Sources

等出现toast弹框信息后,点击暂停按钮

 然后切到elements选项,就可以定位toast

3、代码封装

from selenium.webdriver.support import expected_conditions


    def base_get_toast_text(self, loc):
        # 获取toast的文本信息
        toast_text = WebDriverWait(self.driver, 10, 0.5).until(expected_conditions.presence_of_element_located(loc))
        return toast_text.text

或者添加捕获异常

# 注意别导入错了!!!
from selenium.webdriver.support import expected_conditions as EC
 
 
def get_toast_text(driver, timeout=15, poll_frequency=0.1):
    '''
    func:定位Toast元素,获取text属性值
    :param driver: driver实例对象
    :param timeout: 元素定位超时时间
    :param poll_frequency: 查询频率
    :return: toast文本内容
    '''
    toast_loc = (By.XPATH, '//*[@class="android.widget.Toast"]')
    try:
        toast = WebDriverWait(driver, timeout, poll_frequency).until(
            EC.presence_of_element_located(toast_loc)
        )
        # toast_text = toast.get_attribute('text')
        toast_text = toast.text
        return toast_text
    except Exception as e:
        print(e)

4、调用

# 订单提交成功的Toast信息
loc = (By.CSS_SELECTOR, 'div[class="layui-layer-content layui-layer-padding"]')

toast = base_get_toast_text(loc)
print(toast)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值