1.可以通过id,name ,class, tag名 ,超链接,等等webelement 进行定位
driver.find_element_by_id()
driver.find_element_by_class_name()
driver.find_element_by_tag_name()
driver.find_element_by_link_text()
driver.find_element_by_partail_link_text()
2.通过css选择器进行定位
1.元素选择器
div,li,ul
2.类选择器 通过.表示
3.id选择器通过#表示
4.*全局选择器
5.常用的模糊匹配有④种样式
*=匹配全部
^=以什么开始
$=以什么字符结尾
~=包含什么字符
6.组选择器例如可以通过id 和class 的属性值组合来定位元素,他们之间用逗号隔开
7.关系选择器例如:
相邻兄弟元素可以使用+ 例如div+ul 非相邻的与间隔的可以使用~ 例如:div~li
后代选择器 祖辈元素与后代元素之间用空格隔开, 匹配父节点所有子孙节点。
子元素选择器用>表示 例如li>ul>a
8.当后代元素中有多个相同的标签我们可以使用下面几个方法:
li:first-child li是一个元素
div:nth-child(n) 第n个div标签从任意的元素开始数可以是div也可以不是div
div:nth-of-type(n)第n个div标签 只数div标签
3.xpath 选择器
1.绝对路径/div/ul/li
2.相对路径 //div//ul
3.相对路径和绝对路径可以混合使用
4.通过.当前节点 , ..父节点
5@ 指定属性名 格式是这样的 @id=‘A’ 属性值必须使用引号
6当出现多个相同的标签的时候可以使用下标来确定选择哪个例如//div/ul[1]选择div 子元素 第一个ul元素
//div/ul(last()) 最后一个ul元素
//div/ul(last()-2)倒数第二个ul元素
//div/ul(position<3)选择前2个元素
7.通配符选择器 *
/* 匹配所有标签
@*匹配所有的属性
可以通过text()=文本值,获取当前元素
8.组选择 可以使用两个 选择 可以使用 | 隔离开
9.xpath 的轴用法
css选择器的无法向上选择兄弟元素,而xpath 可以
following::sibling 选择下面的兄弟
preceding::sibling 选择上面的兄弟
child::*当前元素和他的所有子元素
parent::* 当前元素和他的所有父元素
凡是用text()的地方均可以直接用.来进行表示,例如a[text()=’SELENIUM’]和a[.=’SELENIUM’]