• 12
  • 12
分享

  一、问题引入

  笔者在使用robotframework工具进行web ui自动化脚本编写时,发现:对于页面某个复选框元素定位,使用select checkbox关键字+xpath定位方式进行复选框勾选操作时,报错“Checkbox with locator,'xpath=//hs-i18n[contains(.,'xx')]' not found”,即xpath定位路径的checkbox找不到。经过笔者排错和研究,得出以下结论:1、xpath定位路径正确;2、select checkbox对元素使用标签有限制,只能对input标签使用,而测试的元素使用的是div标签。

  经过研究selenium2library源码发现,其提供的关键字,有不少对标签有限制。即:xx关键字,只能针对xx标签的元素使用。因此,本文着重向大家分享selenium2library具有标签限制的关键字,及其限制的标签。

  二、简单了解下什么是标签

  这里所说的标签,指的是html标记语言(即html标签)。它是由尖括号包围的关键词,比如 <html>;通常是成对出现的,比如 <div> 和 </div>。标签中的第一个标签,如<div>,被称为开始标签;第二个标签,如</div>被称为结束标签。

  举例如下图1所示:图中的标签有<html>……</html>,<head>……</head>,<script>……</script>,<textarea>……<textarea>等等。

1-1.jpg


图1 html标签举例

  三、selenium2library与元素定位相关关键字及其相应限制标签

  笔者查看selenium2library源码,将涉及元素定位的关键字机器响应限制标签列表如下。

1-2.png

1-3.png

1-4.png


表1 selenium2library关键字及其限制标签

  通过表1可以看出,selenium2library提供的涉及元素定位的关键字共95个,其中有标签限制的关键字50个,占比大于50%。由此可见,清楚关键字对标签的限制,在使用selenium2library关键字进行web ui自动化测试时具有重要的意义——避免掉坑,走弯路。

  四、掉坑举例

  selenium2library提供了11种定位元素方式,如:id,name,css,xpath,jquery,dom,link等等。接下来以实际栗子说明,不清楚具体标签限制情况下使用关键字造成的用例失败。

  1.以本文开始引入的栗子说明。如下图2所示,如何使用selenium2library完成勾选“全选”复选框操作?

1-5.jpg

图2 举例1

  答:很容易想到,selenium2library提供的勾选复选框关键字为select checkbox。使用select checkbox+xpath定位(//span[text()=’全选’])操作,结果发现,报错“Checkbox with locator 'xpath=//span[text()='全选']' not found.”如下图3所示。而失败的原因在于,如表1中所列:select checkbox关键字限制了使用的元素标签为input,而图2中的标签为span。将select checkbox关键字置换为click element即可,成功运行结果如图4所示。

1-6.png

图3 例1使用select checkbox失败日志图

1-7.png

图4 例1使用click element后成功日志图

  2.再举一例。如下图4示,如何对百度logo的图标进行点击操作?

1-8.jpg

图5 举例2

  答:当把logo图标当作图片使用click image操作时,错误结果如图6所示。同样如表1中所列,click image只能对标签为img的元素操作,而”相机“图标标签为span,所以失败。将click image置换为click element后,成功,结果如7所示。

1-9.png

图6 例2失败日志图

1-10.png

图7 例2成功日志图


作者:刘晓佳Rachel   

来源:51Testing软件测试网原创

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   最近,我们讨论了软件测试工程的的分级,大家都贡献了自己的想法。  对于大家来说,软件测试人的分级其实也代表了我们的进阶方向,职业发展。总体来说,测试工程师未来发展有三个方向:  技术精英  行业专家  管理大师  根据自己的兴趣爱好,测试工程师可以从以下几个方向进行选择,今天我们先来讲技术路线。  如果你对测试技术很感兴趣,可以选择技术精英方向:初级测试工程师--中级测试工程师--高级测试工程师(测试架构师)--测试专家(资深测试架构师)。  晋升方法  如果你在大厂或中型企业,企业有相关晋升制度,与人事沟通好,如果满足晋升条件(各企业晋升制度略有差异),向领导表达自己的意愿,得到领导肯定...
            0 0 820
            分享
          • 记录个人学习过程,期望能够坚持更新下去。fastapi是什么:用于构建 API 的现代、快速(高性能)的 web 框架如何安装:pip install fastapi如何使用:1、创建虚拟环境# 安装虚拟环境工具  pip instlall virtualenv # 创建名为fastapi_test的虚拟环境(名字想取什么就取什么) virtualenv fastapi_test # 进入虚拟环境 cd .\fast_test\Scripts # 执行activate2、安装fastapipip ...
            0 0 1098
            分享
          • 问:你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决。首先,将问题提交到缺陷管理库里面进行备案。然后,要获取判断的依据和标准:根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是否确认的直接依据;如果没有文档依据,可以根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷;根据用户的一般使用习惯,来确认是否是缺陷;与设计人员、开发人员和客户代表等相关人员探讨,确认是否是缺陷;合理的论述,向测试经理说明自己的判断的理由,注意客观、严谨,不参杂个人情绪。等待测试经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道...
            11 12 3108
            分享
          •   测试周报则是反映团队工作进展和专业态度的一扇窗口。通过周报,我们不仅可以展示一周内的工作成果,更可以体现团队的工作心态——是积极进取、不断学习的成长型心态,还是仅仅满足于现状、缺乏动力的躺平型心态。本文将带您深入了解这两种不同心态下的工作表现,并探讨如何通过拆分思想来应对进度统计的挑战。  包括内容如下:  一、2种不同心态周报  在撰写测试周报时,可以体现出不同的工作心态,如成长型心态和躺平型心态。以下是这两种心态在测试周报中的体现:  成长型心态的测试周报体现  积极学习与自我提升: 在成长型心态的测试周报中,作者通常会展现出对新知识的渴望和对技能提升的持续追求。本周,我们深入研究了自...
            0 0 355
            分享
          • 什么是大数据?大数据是不能使用传统计算技术处理的大型数据集的集合。这些数据集的测试涉及各种工具,技术和框架来处理。大数据涉及数据创建,存储,检索和分析,在数量,多样性和速度方面都非常出色。您可以在这里了解有关大数据,Hadoop和Mapreduce的更多信息,在本教程中,我们将学习:大数据测试策略验证大数据应用程序的测试步骤架构测试性能测试测试环境需求大数据测试 传统数据库测试大数据场景中使用的工具大数据测试中的挑战测试大数据应用程序更多的是验证其数据处理,而不是测试软件产品的个别功能。当涉及到大数据测试时,性能和功能测试是关键。在大数据测试中,QA工程师使用集群和其他支持组件来验证TB级数据...
            15 15 1871
            分享
      • 51testing软件测试圈微信