1. Xpath 定位
是一个完整的xpath路径,可通过浏览器插件定位并直接生成。但因为这种方式是直接写死的,页面一旦发生改动,维护成本非常大,所以我们一般都采用相对路径。例如:xpath=/html/body/div[2]/div[1]/div/div[1]/div/form/span[1]/input
就是使用元素本身定位。例://*[@id="kw"]
- xpath常用符号:
- / 表示绝对路径绝对路径是指从根目录开始
- // 表示相对路径
- . 表示当前层
- .. 表示上一层
- * 表示通配符
- @ 表示属性
- [] 属性的判断条件表达式
- xpath定位常用函数:
- contains (): //div[contains(@id,'widget')],选择id属性中包含'widget'的div
- text(): //a[text()='hello world'],选择文本值为'hello world'的节点
- last(): 选择最后一个
- starts-with(): //div[starts-with(@id,'common')] ,选择id属性中’common’开头的div节点
- not(): 否定
2、CSS 定位
- css常用符号:
- # 表示id
- . 表示class
- > 表示子元素,层级
- (空格) 一个空格也表示子元素,但是是所有的后代子元素,相当于xpath中的相对路径
例:
<div class="input_class" type="text" name="passwd" id="passwd-id" />
- #input 选择id为passwd-id的节点
- .input_class 选择class为input_class的节点
- div#passwd-id>input 选择id为passwd-id的div下的所有的input节点
- div#passwd-id input 选择id为passwd-id的div下的所有的input节点
- div.input_class[name='passwd'] 选择class为input_class并且name为passwd的节点
- div[name='passwd'][type='text'] 选择name为passwd且type为text的节点