rf selenium2library关键字之标签限制

发表于:2021-3-31 09:19

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:刘晓佳Rachel    来源:51Testing软件测试网原创

分享:
  一、问题引入
  笔者在使用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 html标签举例

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

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

  四、掉坑举例
  selenium2library提供了11种定位元素方式,如:id,name,css,xpath,jquery,dom,link等等。接下来以实际栗子说明,不清楚具体标签限制情况下使用关键字造成的用例失败。
  1.以本文开始引入的栗子说明。如下图2所示,如何使用selenium2library完成勾选“全选”复选框操作?
图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所示。
图3 例1使用select checkbox失败日志图

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

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

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

图7 例2成功日志图

      版权声明:本文出自51Testing会员投稿,51Testing软件测试网及相关内容提供者拥有内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号