软件测试

rf selenium2library关键字之标签限制

2021-03-30  本文已影响0人  刘晓佳rachel

转自公众号文章:https://mp.weixin.qq.com/s/74GTqXzytag-vCmp2z0nvg

01 问题引入

笔者在使用robotframework工具进行web ui自动化脚本编写时,发现:

对于页面某个复选框元素定位,使用select checkbox关键字+xpath定位方式进行复选框勾选操作时,报错“Checkbox with locator,'xpath=//hs-i18n[contains(.,'xx')]' not found”,即xpath定位路径的checkbox找不到。

经过笔者排错和研究,得出以下结论:

经过研究selenium2library源码发现,其提供的关键字,有不少对标签有限制。即:xx关键字,只能针对xx标签的元素使用。

因此,本文着重向大家分享selenium2library具有标签限制的关键字,及其限制的标签。

02 简单了解什么是标签

这里所说的标签,指的是html标记语言(即html标签)。

它是由尖括号包围的关键词,比如 <html>,通常是成对出现的,比如 <div> 和 </div>。

标签中的第一个标签,如<div>,被称为开始标签,第二个标签,如</div>被称为结束标签。

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

图1 html标签举例

03 selenium2library与元素定位

相关关键字及其相应限制标签

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

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

04 掉坑举例

通过表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成功日志图
上一篇 下一篇

猜你喜欢

热点阅读