• 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软件测试网原创

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 命题有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。其规格说明如下:若投入5角钱或1元钱的硬币,押下“橙汁”或“啤酒”的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示“零钱找完”的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示“零钱找完”的红灯灭,在送出饮料的同时退还5角硬币。分析根据命题可以分析出,自动售货机的业务中一共存在5个条件和5个结果,分别是:条件:售货机有零钱找投入1元硬币投入5角硬币 押下橙汁按钮押下啤酒按钮 结果: 售货机〖零钱找完〗灯亮    当售货机中没有...
            12 13 7912
            分享
          • 读者提问:『阿常你好,使用 Jmeter 做性能测试,如何模拟多个不同的用户同时登录,总共有几种方法 ?』阿常回答:阿常所知的方法有如下两种:1、CSV Data Set Config本地创建文件,保存为 csv 格式,里面保存用户名和密码。CSV Data Set Config 选择本地创建好的文件,设置变量名。(后续在需要传参的请求中,引用变量 ${username},${password})2、创建JDBC请求获取登录账密Jmeter 创建JDBC请求获取登录账密,结果存储到变量中,依次传给登录接口。具体可以查看阿常之前写过的文章,jmeter创建JDBC请求,返回多...
            0 0 1711
            分享
          •   同样是测试人员,交代的任务也能按时完成,为什么受欢迎的程度会有所不同呢?  先来说说不同的测试人员有什么不同吧。  责任心不同  对于一个测试人员来讲,责任心是很重要的一点。既然你测了这个功能,那么就要对这个功能负责,不能说是大体测测就完了,需要考虑各种可能出现的情况,以防意外的发生。作为测试人员要对整个功能负责。  举个例子来说,一个需求上线至少需要两个以上的测试人员共同测试完成之后才能更新到生产环境,当这个需求在生产环境上出现了问题,影响了正常的操作流程,那么有的测试人员会立即利用现有的错误数据,看有什么特殊数据或者操作,尽量快速的去复现这个问题,并交给开发人员去解决这个问题,尽快的更...
            0 0 1505
            分享
          • 前言除了测试平台工具,业务测试的总结和思考同样重要,这里总结了一些Android测试知识点,可以辅助业务测试快速形成测试用例和检查点,当作抛砖引玉分享给大家。如有思考不全面的地方,欢迎大家指出来。一.安装启动卸载1、在各个操作系统上(Android>=4.3,ios>=7.0,根据各个应用要求的最低系统)能安装成功,分别安装在手机内存或者sd卡上都能成功。app安装完成后的运行,可正常打开软件。app打开后,是否有加载状态进度提示,引导页是否正常。启动的方式分为:首次启动,热启动,冷启动,应用管理器强行停止后启动,应用管理器中清缓存启动。2、正常卸载3、安装分为全安装,升级覆盖安装...
            0 0 2208
            分享
          • 软件性能测试中有一类很重要的测试——负载测试,包括并发测试和容量测试。负载测试的重要工作在于找到系统的性能拐点。在并发测试中我们不断地增加事物的用户并发数,观察系统所可以接受的并发数是否与设置的并发数保持一致,或者在增加并发数的时候观察系统的响应时间是否在可接受的范围之内(比如<3秒》)。当并发数少的时候,实际并发数与设置并发数是一致的,当系统并发数达到一定的数量后,实际并发数保持恒定,不会受到设置并发数的增加而增加了。或者系统的响应时间会超过设定的目标值。如图一所示,A即为我们找到的并发测试的拐点。图一:负载测试的拐点同样,在容量测试中,我们不断地往数据库中灌入数据,在开始数据量比较少...
            0 0 1970
            分享
      • 51testing软件测试圈微信