python + selenium--webdriver定位方法

本文详细介绍了使用Python的Selenium库通过WebDriver进行网页元素定位的各种方法,包括by_name, by_id, by_class_name, by_tag_name, by_link_text, by_partial_link_text, by_xpath和by_css_selector。每个方法都有其适用场景,例如id和name定位适用于唯一标识元素,class name定位在元素无id和name时提供选择,而XPath定位则提供了最大的灵活性。" 127835789,14397191,Java国漫论坛网站毕业设计源码+MySQL数据库,"['Java开发', '数据库设计', 'Web开发', '前端框架', 'B/S架构']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

页面上的元素就像人一样,有各种属性,比如元素名字,元素id,元素属性(class属性,name属性)等等。webdriver就是利用元素的这些属性来进行定位的。
可以用于定位的常用的元素属性:
• id
• name
• class name
• tag name
• link text
• partial link text
• xpath
• css selector

对应于webdriver中的定位方法分别是:

• driver.find_element_by_name()——最常用,简单
• driver.find_element_by_id()——最常用,简单
• driver.find_element_by_class_name()
• driver.find_element_by_tag_name()——最不靠谱
• driver.find_element_by_link_text()——定位文字连接好用
• driver.find_element_by_partial_link_text()——定位文字连接好用
• driver.find_element_by_xpath()——最灵活,万能
• driver.find_element_by_css_selector()

定位元素的方法没有好坏之分,不同的场景有不同的适用方法,只要定位的唯一的一个元素的方法都是可以使用的

  • id 和name 定位
    这是简单的高效的方法
    1) id(唯一):指定标签的唯一标识
    格式:
    应用场景:
    ①根据提供的唯一id号,快速获取标签对象。
    ②用于充当label标签for属性的值:示例:,表示单击此label标签时,id为userid的标签获得焦点。
    如:定位百度首页文本框的方法,我们可以使用id来定位(该元素提供的id属性,可以唯一定位到它):
    driver.find_element_by_id(‘kw’)
    2) name(不唯一):指定标签的名称
    格式:
    应用场景:
    ①form表单:name可作为转递给服务器表单列表的变量名;如上面的传到服务器的名称为:username=’text的值’。
    ②input type=’radio’单选标签:把几个单选标签的 name设为一个相同值时,将会进行单选操作。


    ③快速获取一组name相同的标签:获取拥有相同name的标签,一起进行操作,如:更改属性、注册事件等
    如:定位百度首页右上角的“设置”链接,我们可以使用name来定位(该元素提供的name属性,可以唯一定位到它)。
    driver.find_element_by_class_name(“s_ipt”)

  • class name和tag name定位
    class: 指定标签的类名
    格式:
    应用场景:
    ① CSS操作,把一些特定样式放到一个class类中,需要此样式的标签,可以在添加此类。
    可以把多个类,放在一个class属性里,但必须用空格隔开;如:class=’btnsubmit btnopen’

    不是所有的前端开发人员都喜欢为每一个元素添加id 和name 两个属性,但除此之外你一定发现了一个元素不单单只有id 和name,它还有class 属性;而且每个元素都会有tag标签。
    还是定位百度首页的文本框,除了用id方法定位之外,我们还可以用class name来定位(该元素提供的class属性,也可以唯一定位到它)。
    driver.find_element_by_class_name(“s_ipt”)

    tag name 定位应该是所有定位方式中最不靠谱的一种了,因为在一个页面中具有相同tag name 的元素极其容易出现,很少具有唯一性。不用学习它了。
    下图中标红区域就是tag name
    这里写图片描述

    • link text 与partial link text 定位
    有时候需要操作的元素是一个文字链接,那么我们可以通过link text 或partial link text 进行元素定位。
    比如,定位百度首页右上角的“新闻”,“hao123”,等等这些文字连接
    通过linx text定位:
    find_element_by_link_text(“新闻”)
    find_element_by_link_text(“贴吧”)

    通过partail link text定位:
    选择partial link text的时候,需要选择一个比较唯一的字段,来区分这个元素。
    find_element_by_link_text(“新”)
    find_element_by_link_text(“贴”)

    • XPath 定位
    XPath是一种文档定位语言。因为HTML可以看做是XML的一种实现,所以selenium用户可使用这种强大的语言在web应用中定位。参考链接:xpath介绍
    分“绝对路径”和“相对路径”两个方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值