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

Toast

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

如何定位

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

  1. <!DOCTYPE html>

  2. <html>

  3. <head>

  4. <meta charset="utf-8">

  5. <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />

  6. <title>Toast</title>

  7. </head>

  8. <center>

  9. <body>

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

  11. </body>

  12. </center>

  13. <script>

  14. function showToast(msg,duration){

  15. duration=isNaN(duration)?3000:duration;

  16. var m = document.createElement('div');

  17. m.innerHTML = msg;

  18. 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;";

  19. document.body.appendChild(m);

  20. setTimeout(function() {

  21. var d = 0.5;

  22. m.style.webkitTransition = '-webkit-transform ' + d + 's ease-in, opacity ' + d + 's ease-in';

  23. m.style.opacity = '0';

  24. setTimeout(function() { document.body.removeChild(m) }, d * 1000);

  25. }, duration);

  26. }

  27. function clickme(){

  28. showToast("祝您身体健康!",3000);

  29. }

  30. </script>

  31. </html>

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

判断Toast是否正确

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

 
  1. # coding:utf-8

  2. from selenium.webdriver.support.ui import WebDriverWait

  3. from selenium.webdriver.support import expected_conditions as EC

  4. from selenium import webdriver

  5. from selenium.webdriver.common.by import By

  6. def test_01():

  7. driver = webdriver.Chrome()

  8. driver.get(r'D:\test_daily\123.html')

  9. driver.find_element_by_id('anjing').click()

  10. # 元素位置

  11. locator = (By.XPATH, '/html/body/div')

  12. # 显示等待获取元素

  13. WebDriverWait(driver, 20,0.5).until(EC.presence_of_element_located(locator))

  14. # 获取toast

  15. t = driver.find_element_by_xpath('/html/body/div').text

  16. print(t)

  17. assert t =='祝您身体健康!'

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

总结

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

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

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

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取   

更多推荐