- 了解元素各种定位方法
- 掌握id、name、class_name、tag_name、link_text、partial_link_text定位的使用
为什么要学习元素定位方式?
- 让程序操作指定元素,就必须先找到此元素;
- 程序不像人类用眼睛直接定位到元素;
- 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定位实现 步骤分析
- 导入selenium包 --> from selenium import webdriver
- 导入time包 --> from time import sleep
- 实例化火狐浏览器 --> driver=webdriver.Firefox()
- 打开注册A.html --> driver.get(url)
- 调用id定位方法 --> driver.find_element_by_id("")
- 使用send_keys()方法发送数据 -->send_keys(“admin”)
- 暂停3秒 --> sleep(3)
- 关闭浏览器 -->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")
总结
- id、name、class_name
共同点:基于元素属性 - tag_name
基于的元素的标签名称 - link_text、partial_link_text
共同点:定位超链接<a>标签 - find_elements_by_XXX()
返回符合条件的所有标签,返回的格式为列表