selenium_day_2
1.元素定位
1.1id属性定位
- 语法
- driver.find_element_by_id("id属性值")
- 用法
- 只有当需要定位的元素有id属性的时候才能够使用(id动态,也不能使用)
1.2name属性定位
- 语法
- driver.find_element_by_name("name属性值")
- 用法
- 只有当需要定位的元素有name属性的时候才能够使用(name动态,也不能使用)
1.3class属性定位
- 语法
- driver.find_element_by_class_name("class属性值")
- 用法
- 只有当需要定位的元素有class属性的时候才能够使用
1.4tag标签定位
- 语法
- driver.find_element_by_tag_name("标签名")
- 用法
- 当页面中有唯一的标签
- 当页面中有多个相同标签的元素时
- find_element 默认定位第一个
- find_elements 定位所有相同名称的标签
- 遍历使用
1.5超链接定位
- 语法
- link_text 全部文本
- partial_link_text部分文本----连续
- 用法
- 定位超链接,partial_link_text作为link_text的补充
1.6xpath定位
- 语法
- selenium中语法
- driver.find_element_by_xpath("xpath表达式")
- xpath表达式
- 标签+属性
- //标签名[@属性名="属性值"]
- 层级定位
- //父标签[@父标签属性名="父标签属性值"]/子标签
- 索引
- //父标签[@父标签属性名="父标签属性值"]/子标签[索引值] --索引值从1开始
- 逻辑
- and
- //标签名[@属性名1=属性值1 and @属性名2=属性值2 and ...]
- and
- 模糊匹配
- contains
- //标签名[contains(@属性名,属性值/部分属性值)]
- contains
- 标签+属性
- selenium中语法
- 用法
- 当常用方法都无法对元素进行定位的时候,xpath定位方法
1.7 css_selector定位
- 语法
- driver.find_element_by_css_selector("css表达式")
- css表达式
- id,class属性
- # 表示id # id属性值
- . 表示class .class属性值
- 其他属性
- [属性名=属性值]
- 标签+属性
- 标签名[属性名=属性值]
- 层级
- 父标签[父标签属性名=父标签属性值]>子标签
- 索引
- 父标签[父标签属性名=父标签属性值]>子标签:nth-child(索引值)
- 逻辑(and)
- 标签名[属性名1=属性值1][属性名2=属性值2]
- 模糊匹配
- 标签名[属性名*=部分属性值]
- id,class属性
2.元素操作
2.1基本操作
- 清空
- 元素.clear()
- 输入
- 元素.send_keys("输入的内容")
- 先清空再输入
- 点击
- 元素.click()
2.2其他操作
- 获取元素文本
- 元素.text
- 获取元素属性
- 元素.get_attribute("属性名")
多用来自动化测试用例中的实际结果
- 判断元素是否可见
- 元素.is_displayed() 返回布尔值
- 判断元素是否可用
- 元素.is_enabled() 返回布尔值
作业day_2
1.手抄课堂代码1遍
2.敲2遍
3.注册A页面前9个元素,每个元素至少使用8种定位方式定位