今日目标
- 定位一组元素的方法
- XPath方法
- CSS方法
- 浏览器操作和元素操作方法
Q1:定位一组元素方法
tips:元素定位方法如果带有s,则执行结果返回的是列表类型数据,里面的数据是多个元素对象。
说明:可以通过列表的下标(索引)获取对应的目标元素对象,再执行操作。
其他的定位方法也可以实现定义一组元素。
使用标签名方法定位电话和邮箱并完成操作。
Q2:元素定位-XPath、CSS
XPath即为XML Path简称,它是一门在XML文档中查找元素信息的语言。
XML:一种标记语言,用于数据的存储和传递。后辍.xml结尾。
XPath定位策略【方式】
1.路径-定位
2.利用元素属性-定位
3.属性与逻辑结合-定位
4.层级与属性结合-定位
XPath定位方法
element = driver.find_element_by_xpath(xpath)
绝对路径:从最外层元素到指定元素之间所有经过元素层级的路径。
说明:
1.绝对路径从以/html根节点开始,使用/来分隔元素层级;
2.绝对路径对页面结构要求比较严格,不建议使用。
相对路径:匹配任意层级的元素,不限制元素的位置。
说明:
1.相对路径以//开始
2.格式://input或者//*
Q3: XPath定位方法-利用元素属性策略
注意:
1.
2.
Q4:属性与逻辑结合
说明:解决元素之间各相同属性
Q5: 层级与属性结合
说明:如果通过元素自身的信息不方便直接定位到该元素
层级与属性结合的使用场景举例
Q6:XPath-延伸
1、//*[text()=“xxx”]
文本内容是xxx的元素。
2、//*[contains(@attribute,'xxx')]
属性中含有xxx的元素
3、//*[starts-with(@attribute,'xxx')]
属性以xxx开头的元素
Q7:XPath-总结
XPath见思维脑图
Q8:CSS定位策略
内嵌方式,一般是首页、电商等项目场景
1.CSS是一种语言,用来描述HTML元素的显示样式;
2.在CSS中,选择器是一种模式,用于选择需要添加样式的元素;
3.在Selenium中也可以使用css选择器来定位元素。
tips:在selenium中,推荐使用CSS,速度比XPath快。
CSS定位方法
element = driver.find_element_by_css_selector(css_selector)
CSS定位属性选择器使用注意事项
层级选择器
1)父子层级关系
2)祖辈后代层级关系
注意:父子层级
CSS延伸
input[type^='p'] :根据给出的属性值开头内容定位元素
input[type$='属性值结尾部分内容'] :根据给出的属性值结尾内容定位元素
input[type*='属性值任意部分内容'] : 根据给出的属性值任意部分内容定位元素
Q9:元素定位总结
XPath与CSS类似功能对比
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get('')
# 说明:在selenium框架中,元素定位方法的另一种写法
driver.find_element(By.ID,'userA').send_keys('admin')
driver.find_elements_by_id('passwordA').send_keys('123456')
# 注释:说法1:by方法是By方法的封装; 说法2:By方法是by方法的底层实现(原理)
# 应用场景:使用PO设计模式封装代码结构时需要使用By方法。
sleep(3)
Tips:pycharm中动态代码模板的使用步骤说明
创建实时代码模板
移除实时模板
今日任务
1.复习总结元素定位方法思维导图;
2.完成代码实操;
3.预习任务