一、html页面元素特征
一个页面当中众多元素里,找到唯一的那个它,然后你要对它做点啥
100个男生女生。众多的男生当中,找到中意的那个他。
根据条件去筛选一下:男生、长沙、有房、170
要根据元素的特征,去页面当中筛选。
元素有什么特征?
html页面 + css样式 + javascript交互
房子 装修风格
房子里的东西
表述页面内容 字体大小/颜色/位置
图片/文字/链接
表格/表单/下拉列表
html页面由标签对组成。
<标签名>
其它的标签对/文本内容
</标签名>
<标签名/>
元素本身的特征:
1)标签名
2)属性 起始标签当中,标签名之后,以key=value的形式存在。
id:类似于人的身份证和指纹,独一无二。但是,它不像指纹不会变。要去判断
class: 对页面的元素进行分类。
style: 行内样式。
[name]: name属性,取名字。
其它的属性 - 不同的元素有不同的。
3)文本内容
4)关系。父元素/兄弟元素
每一个标签对:都有对应的作用。
<script></script> 不包含任何html的内容。
标签名:元素的类型。img、a、div、input。一个标签名是一类元素。
二、8大定位方式
8大定位方式
1、元素的id属性
driver.find_element_by_id(id值)
#2、元素的class属性
driver.find_element_by_class_name(class属性的值)
3、元素的标签名
driver.find_element_by_tag_name(标签名)
#4、元素的name属性
driver.find_element_by_name(name属性的值)
5、a元素的文本内容去定位-完全匹配
driver.find_element_by_link_text(文本内容)
#6、a元素的文本内容去定位-模糊匹配-只要包含文本就可以了
driver.find_element_by_partial_link_text(要包含的文本内容)
=== 以上6个方法:1)只能通过一种属性定位元素。2)只能找到一个元素。以上定位方式主要是了解
7、通过xpath表达式定位 - 多属性组合/层级关系
driver.find_element_by_xpath()
8、通过css选择器定位 - 前断开发使用,不建议测试使用
driver.find_element_by_css_selector()
以上8个方法:2)只能找到一个元素。在html当中,从上到下去搜索,先找到的就是第一个。====
返回的就是WebElement对象
=== 找多个元素(html当中匹配到的所有元素) =======
把上面的方法,find_element_by换成find_elements_by
find_elements返回的是列表