• 7
  • 6
分享
  • 【软件测试大赛Web应用省赛】跳坑记录——软件测试圈
  • 恬恬圈 2020-11-20 13:29:16 字数 1740 阅读 2655 收藏 6

      本文写在预赛通过的基础上,默认后来者已经接触过web应用测试,并有一定的基础知识。

      本文写于2020.11.8省赛结束,希望这些坑以后不会再有人跳进去。

      【前排提示】没学过前端因为懒 ,所以有关网页的术语可能使用有误,烦请理性讨论_(:з)∠)_有错的地方可以在评论区指出~

      1.frame的切换

      今年的省赛功能测试题目是登录网易云进行操作(前两步操作如下图)

1.png

      第一步点击“歌手”,没有问题,直接复制xpath然后click就行。

      问题在第二步,进入到歌手页面,发现无论怎么复制“华语女歌手”的xpath,甚至是页面上其他地方的xpath,都无法进行点击操作,会提示你“not such element”。这是为什么呢?我们来看一下网页结构:

3.png

4.png

      右下红框是元素的a标签怕看不清,截一张放大的网页代码右上的红框表示,题目要求的元素包含在一个名字叫做“contentFrame”的iframe里面,这就是我们无法进行点击操作的原因。简单来说,网页的自动化操作是有空间限制的。我们第一步点进“歌手”页面的这步操作,“歌手”元素所在的空间是默认frame;而第二步点击“华语女歌手”,它所在的空间是另外一个iframe,我们需要通过语句来进入这个iframe才能进行自动化操作:

driver.switchTo().frame("contentFrame");//进入iframe
driver.switchTo().defaultContent();//返回默认frame

      类比一下,上面的操作就像我们用命令提示符的时候,如果现在的工作目录是D盘,而你现在想删除C盘根目录的某个文件(这里假如它叫233.txt好了),那么直接 del 233.txt 是行不通的,要先把工作目录转换到C盘根目录,再 del 233.txt 。

      要注意,题目之后的操作要求中,有的元素在iframe里面,有的在默认frame里面,要根据情况使用上面的语句来切换工作frame。

      2.变化的xpath

      先来看一下题目的第三步操作要求:

5.png

      这个所谓的“添加到播放列表”的xpath复制出来是这样的:

driver.findElement(By.xpath("//*[@id=\"2287551604833444877\"]/td[3]/div/a")).click();

      你会发现无法进行点击,显示“not such element”。更绝望的是,你每次复制出来的xpath都不一样。这是因为网抑云的这个按钮,在采用复制相对xpath的时候,复制出来的是包含时间戳的xpath(就是代码中“id=\”后面那一串数字),这个时候我们就不能用这个xpath了(毕竟每时每刻都不同),我们要采用绝对xpath,或者说full xpath。

6.png

      一般用的是copy xpath,这里要copy full xpath,我们复制出来的绝对xpath长这样:

driver.findElement(By.xpath("/html/body/div[3]/div[1]/div/div/div[3]/div[2]/div/div/div/div[1]/table/tbody/tr[3]/td[3]/div/a")).click();

      平常的时候用相对就行,因为绝对太长了()

      3.(此条不确定是否为得分点)用文字定位元素

      有一步操作是这样的:

7.png

      这时候可以直接

driver.findElement(By.linkText("模特")).click();

      由于时间仓促,没有测试这步操作是否正确得分,仅供参考。

      今年主要是没想到用iframe,浪费了大概两个小时(而且之前也没有很多web应用测试的文章),希望这篇文章能为后来者提供一定的帮助。


作者:世界第一可爱不咕鸟

原文链接:https://blog.csdn.net/u011897679/article/details/109558282#comments_13858116

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   京东物流今日发文称,将陆续投放循环包装 150 万个循环快递包装,推广循环包装的共享回收模式,至 2024 年底,仅这一举措将减少纸箱、泡沫箱、塑料袋等一次性包装超 1 亿个。  京东物流方面称,将重点投放循环保温周转箱和青流箱(堆叠结构中空板箱),并探索循环快递包装袋在特定场景中应用。  循环包装将采用标准化尺寸,取消品牌元素印刷,有助于行业内实现资源共享、模式共用。京东物流将在全国超 30 个城市规模化投放循环包装,在京东快递站点的个人寄递和商家揽收中使用循环包装进行打包,并优先用于同城寄递业务。同时,京东物流还将联合多家品牌商,在工厂生产、加工环节使用循环箱进行包装,力求将商品包装与...
            0 0 920
            分享
          • Selenium是一款基于Web页面的UI自动化测试框架支持多浏览器操作:Chrome、IE、Firefox、Safaria等;支持夸平台,Windows、Linux、Mac等;持多语言,Python、Java、Ruby、C#等。1、Selenium webdriver 原理:Webdriver是按照Client/Server模式设计的Client:编程语言客户端Server:浏览器驱动程序。用来接收客户端的请求并驱动浏览器执行操作然后返回结果Selenium代码与浏览器驱动程序之间是通过http协议进行数据交互的。这种方式,不在乎客户端是什么样的形式,只要数据的格式和协议是服务端能够解析的就...
            0 0 948
            分享
          •   有一次,我在做一个web网站的压测时,总感觉并发上不去,后台,中间件包括网络等所有性能都是OK的,后来在排查前端时才发现,原来是图片加载速度过慢造成的瓶颈,如果我当初能对前端图片的性能优化多一些认知,那么可能排查起来就更加的丝滑了,所以作为测试人员,是很有必要了解前端图片的优化方法的,这也能提升你在开发心中地位。在当今数字化的世界中,无论是网页设计、移动应用开发,还是各种多媒体软件,图片都是不可或缺的元素。然而,图片的加载速度却常常成为影响用户体验的关键因素。  一、图片压缩   图片压缩是提升加载速度的首要手段。通过减少图片文件的大小,可以显著缩短加载时间,同时又能最大程度地保...
            0 0 492
            分享
          • 概述前面我们说过,现在比较流行的开发方式为异步调用。前后台以异步方式进行交换,传输的数据使用的是JSON,所以前端如果发送的是JSON数据,后端该如何接收?对于JSON数据类型,我们常见的有三种:json普通数组([“value1”,“value2”,“value3”,…])json对象({key1:value1,key2:value2,…})json对象数组([{key1:value1,…},{key2:value2,…}])对于上述数据,前端如何发送,后端如何接收?JSON普通数组步骤1:pom.xml添加依赖<dependency>    &nb...
            0 0 1398
            分享
          • 当今软件开发中,接口测试已成为必不可少的一环。选择合适的接口测试工具对于程序员来说非常重要,因为这可以帮助他们更快、更高效地评估接口的质量和可靠性。为了提高测试效率和测试质量,自动化接口测试已经逐渐普及。然而,由于市场上有许多不同的接口测试工具,程序员们很难选择合适的工具。如何选择适合自己的工具呢?一、选择接口测试工具的考虑因素首先,得知道在选择接口测试工具时应该考虑哪些重要因素:1、易用性易用性是选择接口测试工具时首要考虑的因素。工具必须具有清晰的界面,能够让程序员快速、方便地操作。同时,工具也应该具有详细的帮助文档,方便程序员使用。2、功能性功能性是选择接口测试工具时第二重要的因素。工具必...
            0 0 1342
            分享
      • 51testing软件测试圈微信