Selenium定位元素

Selenium定位网页元素只要是通过元素的属性值或者元素在HTML里的路径位置,定位方式一共有8种:

定位方式代码
属性idfind_element_by_id()
属性namefind_element_by_name()
HTML标签类型find_element_by_tag_name()
属性classfind_element_by_class_name()
标签值find_element_by_link_text()
标签值模糊匹配find_element_by_partial_link_text()
元素的路径定位选择器find_element_by_xpath()
元素的路径定位选择器find_element_by_css_selector()

以上8种定位都只能定位一个元素,如果有多个相同的元素那么会定位到第一个元素。
其中挑几个重点讲一下:
1.id和name在一个页面往往是唯一的所以他们的定位准确度较高。2.classname和tagname一般是被很多个元素使用,如果要定位单一元素的话慎用(毕竟你也很难看出来你需要的元素是不是第一个)。
3.linktext一般是用来定位某些超链接的,因为超链接的text比较唯一,比如百度主页上方的超链接。
在这里插入图片描述
同时加个partial就可以实现模糊匹配,比如要匹配新闻这个链接就只需要一个‘新’就可以了,当然如果有多个元素含有‘新’就只能定位到第一个了。
4.xpath和css_selector,前者是定位选择器,后者是通过标签的路径来实现定位,两者的定位准确的都非常高,但是一但HTML代码发现更改就几乎无法复用。同时说一下怎么获取一个元素的xpath和css_selector
,F12后在Elements中选取自己想要定位的HTML元素然后右键就可以点击copy,copy想要copy的内容了。

上述的都只能定位一个元素,如果要定位很多个相同的元素就需要换用一下的方式了(其实就是element加了个s):

定位方式代码
属性idfind_elements_by_id()
属性namefind_elements_by_name()
HTML标签类型find_elements_by_tag_name()
属性classfind_elements_by_class_name()
标签值find_elements_by_link_text()
标签值模糊匹配find_elements_by_partial_link_text()
元素的路径定位选择器find_elements_by_xpath()
元素的路径定位选择器find_elements_by_css_selector()
  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值