四、元素定位 4.1 为什么要使用元素定位? 要使用web自动化操作元素,必须首先找到此元素。 4.2 定位工具 火狐:Firebug (F12获取直接点击 Friebug图标) 谷歌:F12键(开发者工具) 4.3 定位元素时依赖于什么? 1. 标签名 2. 属性 3. 层级 4. 路径 4.4 定位方式 1. id 2. name 3. class_name(使用元素的class属性定位) 4. teg_name(标签名称 <标签名 .../>) 5. link_text(定位超连接 a标签) 6. partial_link_text(定位超链接 a标签 模糊) 7. xpath(基于元素路径) 8. css(元素选择器) 汇总: 1. 基于元素属性特有定位方式(id\name\class_name) 2. 基于元素标签名称定位:tag_name 3. 定位超链接文本(link_text、partial_link_text) 4. 基于元素路径定位(xpath) 5. 基于选择器(css) id 定位: 说明: 1. 通过元素的id属性定位,id一般情况下在当前页面中是唯一。 方法: driver.find_element_by_id(id) 提示: 元素必须要有id属性。 案例: # 导包 # 获取浏览器驱动对象 # 打开url # 查找用户名文本框 # 查找密码框文本框 # 输入用户名 # 输入密码 # 暂停3秒 # 关闭驱动 提示: 1. 输入方法:send_keys("输入内容"); 2. 退出浏览器驱动:driver.quit(); 3. 打开url: driver.get(url) 4. 导包:from selenium import webdriver 5. 获取火狐浏览器驱动对象 driver = webdriver.Firefox() name 定位: 说明: 1. 通过元素的name属性来定位, name一般名称为重复。 方法: drivr.find_element_by_name(name) 提示: 元素必须要有name属性 class_name定位: 说明: 1. 通过元素的class属性来定位,class属性一般为多个值。 方法: driver.find_element_by_class_name() 提示: 元素必须要有class属性 提示: id: 一般为唯一标识符。 name:可以重名 class:多个命名。