艺赛旗开发技巧-根据文本点击网页元素

一、题目

根据文字点击百度首页导航栏,例如传入“学术”,流程便点击导航栏中的学术。
网址:https://www.baidu.com/

510c1f987711477b9c80bd699de32c46_image.png

二、Chrome拾取与IE拾取的区别

  1. IE拾取是根据css selector对目标网页中的元素进行匹配
    b0fa09a81a9f46fda4fe419c3c3bf0d1_image.png
  2. Google拾取是根据键值对对目标网页中的元素进行匹配
    a031740f099940649706d6dcbe371f91_image.png

三、IE浏览器解题

1. 找规律

我们知道了IE拾取是根据查找路径(css-selector)对网页元素进行匹配。
先拾取导航栏前两个链接(新闻,hao123),拾取后我们对查找路径的值进行找规律,
新闻 :‘#s-top-left > A:nth-of-type(1)’
hao123:‘#s-top-left > A:nth-of-type(2)’
由此我们得出可根据’#s-top-left > A:nth-of-type(下标)'对元素进行匹配。
0c0de571d7984ed4bc9dcfeefb8888bd_image.png

2. 设计流程

pv_text为传入的参数。
lv_index为下标,初始值为0。
lv_url均为查找路径。
While中的条件为True,获取文本与鼠标点击的查找路径均为lv_url。
循环内首先执行代码块,代码块对lv_index自增,并对lv_url进行赋值。
当获取文本的值lv_gettext==pv_text时,进行鼠标点击操作,跳出循环,否则开始下一次循环。
a9610aa6e543484a9cee7b2c3b18adc3_image.png
代码块中的代码如下:
其中 lv_index 是下标 ,lv_url 是元素的css-selector


lv_index = lv_index + 1
#以下三种方法都可对lv_url的值进行改变

#1.字符串拼接
lv_url = '#s-top-left > A:nth-of-type('+str(lv_index)+')'

#2.格式化字符串
lv_url = '#s-top-left > A:nth-of-type({})'.format(str(lv_index))

#3.占位符
lv_url = '#s-top-left > A:nth-of-type(%s)'%str(lv_index)

四、Chrome浏览器解题

1. 了解chrome拾取

chrome拾取是根据属性表中的键值对对元素进行匹配,我们可以随意的对这些键值对进行编辑,只要这些键值对能匹配到唯一的元素。

2. 巧用aaname

我们拾取后会发现,属性表中是许多的键值对。

748faa0e2c274dd3b0518428e4282bfe_image.png

其实不需要这么多键值对,我们可以删除一些,只要我们可以匹配到网页中唯一元素就行,那么我们把除了aaname以外的全部删除,只运行此组件可以成功的点击到我们想要的链接。

454a7d30ee2c460cae316cf6a2c0f958_image.png

3. 设计流程

我们是根据属性表中aaname的value匹配,将其设置为流程参数pv_text,即可根据pv_text的值点击我们想要的导航栏链接。
这里我筛选了一些键值对,多一个键值对我们对元素的定位就会更准确,可以根据实际情况进行选择。

91b73db8725f49f08f2c6fcca1a31fcc_image.png

五、总结

通过以上发现,同一道题用Google拾取和IE拾取解题难度相差非常之大。
所以我们开发项目之前也要先考量用什么浏览器进行开发会更容易实现,这样可以让我们的工作变得更轻松。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值