WebDriver_元素定位

  • 了解元素各种定位方法
  • 掌握id、name、class_name、tag_name、link_text、partial_link_text定位的使用

为什么要学习元素定位方式?

  1. 让程序操作指定元素,就必须先找到此元素;
  2. 程序不像人类用眼睛直接定位到元素;
  3. WebDriver提供了八种定位元素方式

WebDriver 元素定位方式(8种)

  • id
  • name
  • class_name
  • tag_name
  • link_text
  • partial_link_text
  • Xpath
  • Css

定位方式分类-汇总:
1). id、name、class_name:为元素属性定位
2). tag_name:为元素标签名称
3). link_text、partial_link_text:为超链接定位(a标签)
4). Xpath:为元素路径定位
5). Css:为CSS选择器定位

1. id定位

说明:HTML规定id属性在整个HTML文档中必须是唯一的,id定位就是通过元素的id属性来定位元素; 前提:元素有id属性

  • id定位方法
    find_element_by_id()
  • id定位实现 步骤分析
  1. 导入selenium包 --> from selenium import webdriver
  2. 导入time包 --> from time import sleep
  3. 实例化火狐浏览器 --> driver=webdriver.Firefox()
  4. 打开注册A.html --> driver.get(url)
  5. 调用id定位方法 --> driver.find_element_by_id("")
  6. 使用send_keys()方法发送数据 -->send_keys(“admin”)
  7. 暂停3秒 --> sleep(3)
  8. 关闭浏览器 -->driver.quit()
    在这里插入图片描述
    /:斜杆
    \: 反斜杠,目录结构
    url转义:
    方式1:url="E:\\regist.html"
    方式2:url = r"E:\regist.html"(r的作用:被r修饰的字符串,字符串中的转义符不做转义使用)
2. name定位

通过元素的name属性来定位,前提:元素必须要有name属性

  • name定位方法
    find_element_by_name()
3. class_name定位

通过元素的class属性来定位,前提:元素必须要有class属性

  • class定位方法
    find_element_by_class_name()
4. tag_name定位

通过标签名来定位
说明:HTML本质就是由不同的tag(标签)组成,而每个tag都是指同一类,所以tag定位效率低, 一般不建议使用;

  • 定位方法
    find_element_by_tag_name() 返回:符合条件的第一个标签
5. link_text定位

说明:link_text定位与前面4个定位有所不同,它专门用来定位超链接文本(<a>标签)

  • link_text定位方法
    find_element_by_link_text("全部文本")
    说明:需要传入要定位的a标签全部文本
  • click():单击
driver = webdriver.Firefox()
driver.find_element_by_link_text("百度").click()
6. partial_link_text定位(模糊匹配)

说明:partial_link_text定位是对link_text定位的补充,partial_like_text为模糊匹配;link_text 全部匹配

  • 方法:find_element_by_partial_link_text("局部文本")
    说明:需要传入a标签局部文本-能表达唯一性
7. 定位一组元素 find_element[s]_by_XXX()
  • 作用:
    1). 查找定位所有符合条件的元素
    2). 返回的定位元素格式为数组(list列表)格式;
  • 说明: 列表数据格式的读取需要指定下标(下标从0开始)
  • 例子:使用tag_name获取第二个input标签

driver.find_elements_by_tag_name("input")[1].send_keys("123456") 
总结
  1. id、name、class_name
    共同点:基于元素属性
  2. tag_name
    基于的元素的标签名称
  3. link_text、partial_link_text
    共同点:定位超链接<a>标签
  4. find_elements_by_XXX()
    返回符合条件的所有标签,返回的格式为列表
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值