【selenium-04】元素定位<1>

第一个脚本已经完成,大家都已经知道对元素的点击,输入等操作都是通过先识别元素后驱动执行动作完成的,必然元素定位是selenium自动化中的重中之重,废话不多少,搞起来~

一、元素定位的方法

id

name

class name

link text 可点击的文本(全匹配)

partial link text 同上(部分匹配)

tag name

xpath 功能强大

css selector 绝技

二、定位方法解析

id和name

这两种最常用,但是一般很多前端程序员都不太喜欢写,因为确实太多了,很麻烦(前端别打我)

例:使用Chrome(谷歌浏览器)打开百度首页,鼠标选中百度搜索框,右击,选择“检查”:

如上,我们看到元素和前端标签是对应起来的,百度搜索框元素对应的 id=‘kw’,name=‘wd’,这就解释了我们上节的脚本,为什么选择使用:

fuck_test.find_element_by_id("kw").send_keys(u"搞测试")

当然,使用name也是可以定位到百度搜索框的:

fuck_test.find_element_by_name("wd").send_keys(u"搞测试")

百度一下这个按钮同理,事实证明id和name简单好用,不过需要注意的是要确定这个id的唯一性,我们可以将这个id或name的值复制,CTRL+F,CTRL+C,就可以看到这个元素的id,name是否唯一?

微微一笑很完美,唯一的,所以在使用的时候不用考虑错乱重复等问题。

tag name和class name

如同上图,搜索框的元素标签类型为input,我们就可以选择使用tag name等于input进行元素定位:

fuck_test.find_element_by_tag_name("input").send_keys(u"搞测试")

如同上图,搜索框的class=“s_ipt”,我们就可以选择使用class name等于s_ipt进行元素定位:

fuck_test.find_element_by_class_name("s_ipt").send_keys(u"搞测试")

就是这么流畅~

css定位

css原为html页面的样式,用来描述HTML和XML的,这里selenium利用他们进行相关元素的定位:

如图,百度搜索框对应的HTML代码为黄色部分,对应的css样式为#kw,所以:

fuck_test.find_element_by_css_selector("#kw").send_keys(u"搞测试")

同样可以实现元素定位,当然css_selector方法也可以结合元素标签类型以及id,name等属性共同定位。

xpath定位

xpath,简单粗暴,无脑高效

找到元素对应的HTML代码块后,右击,选择copy→copy xpath

fuck_test.find_element_by_xpath("XXX").你想进行的操作

将copy到的xpath粘贴到XXX处即可,完了 -。-

当然你想研究xpath的写法最好,不过貌似没有直接复制来得直接 -。-

百度搜索框的xpath为://*[@id="kw"]

link text 和 partial link text

link text顾名思义,当我们懒得去copy xpath或者看id,name等属性的时候,我们看到百度搜索按钮就叫百度一下,那我们直接:

fuck_test.find_element_by_link_text(u"百度一下").click()

即可

那partial link text就更简单了:

fuck_test.find_element_by_link_text(u"度一下").click()

搞定,祝大家看的开心~

兄dei~如果你觉得还行,可以分享到朋友圈,大家一起学习,共同进步~

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180308G07X0M00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

同媒体快讯

扫码关注腾讯云开发者

领取腾讯云代金券