您现在的位置是:首页 > 正文

UI自动化测试:会消失的弹窗(Toast)如何定位? 最新发布

2024-01-30 23:17:04阅读 0

前言

看到标题可能有的小伙伴们懵了,什么是Toast,其实Toast大家都见过,就是一般在我们页面中停留大概2~3秒的时间后自动消失的弹框,那么既然要做自动化,可能Toast也需要大家进行测试,那么小编今天就来介绍下如何定位页面上的Toast。

Toast

Toast 是一种简单的轻量级通知方式,它通常以短暂的形式出现在屏幕上,并在一段时间后自动消失。Toast 可以在应用程序中的任何部分使用,但不能与用户进行交互。

如何定位

既然是快速的2~3秒,那么我们如何进行定位其是否存在呢?首先小编先通过网上找了一段Toast的代码,然后进行简单修改后,通过html格式进行打开:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
    <title>Toast</title>

</head>

<center> 
<body>
    <button id="anjing" onclick="clickme();">点击有惊喜!</but-ton>  
</body>
</center>
<script>  

function showToast(msg,duration){  
    duration=isNaN(duration)?3000:duration;  
    var m = document.createElement('div');  
    m.innerHTML = msg;  
    m.style.cssText="width:60%; min-width:180px; background:#000; opacity:0.6; height:auto;min-height: 30px; color:#fff; line-height:30px; text-align:center; border-radius:4px; position:fixed; top:60%; left:20%; z-index:999999;";  
    document.body.appendChild(m);  
    setTimeout(function() {  
        var d = 0.5;  
        m.style.webkitTransition = '-webkit-transform ' + d + 's ease-in, opacity ' + d + 's ease-in';  
        m.style.opacity = '0';  
        setTimeout(function() { document.body.removeChild(m) }, d * 1000);  
    }, duration);  
}  

function clickme(){
    showToast("祝您身体健康!",3000);
}
</script>   
</html>

(左右滑动查看完整代码)

打开浏览器,接下来就是如何获取到Toast的元素值,我们找到了元素值,就能进行定位了。打开F12进入到source页面中,先通过点击按钮,然后让其Toast弹出,这个时候立刻点击暂停按钮,这时候页面就会静止不动,Toast也不会进行消失,然后在通过正常的定位Toast的元素位置就行了。

判断Toast是否正确

上面小编已经介绍了如何定位Toast的方法,那么定位方法学会了,我们就可以直接上手操作了,通常这类自动化测试用例只需要进行判断是否出现Toast以及不同情况下的Toast内容是否一致即可,所有小编今天通过编写代码时候只会判断Toast的文字是否正确:

# coding:utf-8
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver
from selenium.webdriver.common.by import By
def test_01():
    driver = webdriver.Chrome()
    driver.get(r'D:\test_daily\123.html')
    driver.find_element_by_id('anjing').click()
    # 元素位置
    locator = (By.XPATH, '/html/body/div')
    # 显示等待获取元素
    WebDriverWait(driver, 20,0.5).until(EC.presence_of_element_located(locator))
    # 获取toast
    t = driver.find_element_by_xpath('/html/body/div').text
    print(t)
    assert t =='祝您身体健康!'

(左右滑动查看完整代码)

简单编写完代码后,我们直接通过Pytest进行运行,通过结果可以看出,我们这一条测试用例已经通过了。

总结

这篇问题主要通过介绍了什么是Toast和如何进行定位Toast已经Toast在自动化中如何编写测试用例。

Toast这个场景无论是Web自动化还是App自动化,关于UI场景下的都很有可能存在,特别是App的自动化中存在较多,由于小编电脑上暂时没有安装App的环境,就只列举了Web一种方法,其实无论是App还是Web定位方法都是一样的,学习过程中,主要学习的方法,当方法学会了这个知识点也就学会了。

好了,感谢大家的阅读,希望本篇文章对您有所帮助。

下面是配套学习资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

资料获取方式 :

网站文章

  • c#轻量级高并发物联网服务器接收程序源码

    c#轻量级高并发物联网服务器接收程序源码

    c#轻量级高并发物联网服务器接收程序源码(仅仅是接收硬件数据程序,没有web端,不是java,协议自己写),对接几万个设备没问题,数据库采用ef6+sqlite,可改ef+MySQL.该程序只是源码使用示例,里面有使用方法,自己研究,不包教会,难度属中上层不建议新手拿走。ID:6999612973416375...

    2024-01-30 23:16:35
  • java程序设计任务驱动式教程_java程序设计任务驱动式教程保持良好的交流答案...

    以下说法中,反映当代世界各国课程改革中所存在着的一些共同的发展趋势是()。 A.重对教育的等级化、特权化和专制化否定的教育特征是()。 A.教育的终身化B.教育的多元化皮亚杰的认知发展观属于()。 A...

    2024-01-30 23:16:29
  • 华为mate40会是鸿蒙,华为Mate40将携新款鸿蒙OS设备9月份同台发布:搭载5nm麒麟1020...

    华为mate40会是鸿蒙,华为Mate40将携新款鸿蒙OS设备9月份同台发布:搭载5nm麒麟1020...

    【天极网手机频道】根据往年惯例,华为Mate系列旗舰新机一般在9月份发布,并且首发海思麒麟新一代处理器。不过今年华为在芯片设计/制造方面受到了美国进一步制裁,许多人担心华为Mate40系列会延后发布。...

    2024-01-30 23:15:56
  • Android 开发跨进程大图

    对于跨进程传输数据的问题,我之前也写了一篇,配合阅读效果更好: Android 开发太难了,这异常竟然捕获不到? 1 抛一个问题 这一天,法海想锻炼小青的定力,由于Bitmap也是一个Parcelab...

    2024-01-30 23:15:53
  • Yandex – 俄罗斯无限免费空间、免费相册、免费邮箱、免费网盘

    Yandex – 俄罗斯无限免费空间、免费相册、免费邮箱、免费网盘

    Yandex – 俄罗斯无限免费空间、免费相册、免费邮箱、免费网盘 Yandex是俄罗斯最大的门户网站,Alexa世界排名26位,俄罗斯网站中排名第一!无限容量、无限流量的免费空间,单个文件5M以内,FTP方式上传管理文件,不支持ASP、PHP等动态程序,纯静态空间,提供yourname.narod.ru免费二级域名1个,不支持绑定自己的域名,页面右上角有浮动广告。Yandex还...

    2024-01-30 23:15:45
  • SPOJ REPEATS(后缀数组)

    题意:给出一个字符串,问重复次数最多的子串的重复次数。 题解:和之前做过的poj3693很像http://blog.csdn.net/hyczms/article/details/49294095,不过这道题直接输出次数。#include <cstdio>#include <cstring>#include <algorithm>#define F(x) ((x) / 3 + ((x) %

    2024-01-30 23:15:37
  • 计算机安装Hp1005打印机,如何安装hp1005打印机驱动程序_安装步骤是什么

    计算机安装Hp1005打印机,如何安装hp1005打印机驱动程序_安装步骤是什么

    在许多打印机品牌中,HP品牌对消费者的影响很大. 对于消费者而言,购买打印机时,HP打印机通常成为一致的选择. 如果希望打印机正常工作,则必须安装打印机驱动程序. 如何安装hp1005打印机驱动程序?...

    2024-01-30 23:15:07
  • 【NOIP2017Day1T3】【洛谷P3953】逛公园

    【NOIP2017Day1T3】【洛谷P3953】逛公园

    问题描述策策同学特别喜欢逛公园。公园可以看成一张N个点M条边构成的有向图,且没有自环和重边。其中1号点是公园的入口,N号点是公园的出口,每条边有一个非负权值, 代表策策经过这条边所要花的时间。策策每天都会去逛公园,他总是从1号点进去,从N号点出来。策策喜欢新鲜的事物,它不希望有两天逛公园的路线完全一样,同时策策还是一个特别热爱学习的好孩子,它不希望每天在逛公园这件事上花费太多的时间。如...

    2024-01-30 23:15:02
  • 远程计算机 无用户名,远程桌面登陆没有成功,但是用户名密码正确

    远程计算机 无用户名,远程桌面登陆没有成功,但是用户名密码正确

    1.第一种情况:安全策略问题开始-->运行->gpedit.msc->计算机配置->Windows设置->安全设置->本地策略->安全选项->网络访问:本地帐户的共享和安全模型。 修改为使用经典模式2.第二种情况:用户所在域问题7 Win8以后的Microsoft账户问题由于Win8以后开始使用MS账户,由此产生了一些“无法远程”的问题。究其原因,是...

    2024-01-30 23:14:54
  • 快速容易地处理Windows、Mac 和Linux系统中文件路径问题

    快速容易地处理Windows、Mac 和Linux系统中文件路径问题

    作者:景略集智 链接:https://www.zhihu.com/question/48755767/answer/423475686 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 今天分享一个Python 3里的技巧:快速容易地处理Windows、Mac 和Linux系统中文件路径问题。 编程中有个比较烦人的事情,Windows系统在文件名中间用的是反...

    2024-01-30 23:14:26