3.selenium定位元素及操作(二)

上一篇博文已经介绍了元素定位的八种方法,总有一种适合你的,接下来这篇博文主要是对元素定位的更深入一点的讲解。

一、xpath定位


xpath是XML路径语言,它可以用来确定xml文档中的元素位置,通过元素的路径来完成对元素的查找。HTML就是XML的一种实现方式,所以xpath是一种非常强大的定位方式。
xpath也分几种不同类型的定位方法。

一种是绝对路径定位。这种定位方式是利用html标签名的层级关系来定位元素的绝对路径,一般从标签开始依次往下进行查找。
如百度搜索框的绝对路径xpath定位可以是这样的:
find_element_by_xpath("/html/body/div[1]/div[1]/div/div[1]/div/form/span[1]/input")

还有一种是利用元素属性来进行xpath定位,搜索框还可以利用id和name属性去定位:

ind_element_by_xpath("//input[@id=‘kw’]")
find_element_by_xpath("//[@name=‘wd’]")
其中的标签名input也可以用
来代替,而且只要是在该标签内,任意属性都可以,比如搜索框的maxlength属性:

find_element_by_xpath("//input[@maxlength=‘255’]")

有的时候我们会发现绝对路径定位路径太长,而且光凭路径完全不可以猜测到其指向的具体页面元素,如果只有单纯的元素属性不一定可以每次查找的元素都可以又唯一的属性去方便定位,这个时候我们可以将这两种定位方式结合起来使用。
比如查找搜索框的时候发现其上级元素form又唯一的id方便定位,就可以先查找到form元素然后依次往下写路径:

find_element_by_xpath("//form[@id=‘form’]/span/input")

如果在搜索的过程中,发现通过xpath搜索无法搜索出来的话可以尝试先按下ctrl+F进行测试,下面的搜索可以看出来对应的id是唯一的,因为我们在用name的时候可能不会唯一,所以可以来这里进行测试
【以慕课网为例】
3.selenium定位元素及操作(二)_第1张图片
其中xpath还有很简单的获取方法,不过有时候获取出来的没有那么简单或者是获取出来不正确,不过大部分时候都正确的,某些时候才需要进行修改,所以在你足够熟悉xpath之后可以尝试用复制的方法

找到对应的元素,然后右键copy,找到后面的copy xpath就可以获取到对应的xpath路径了。
3.selenium定位元素及操作(二)_第2张图片

二、CSS定位


find_element_by_css_selector()
有的时候我们会发现绝对路径定位路径太长,而且光凭路径完全不可以猜测到其指向的具体页面元素,如果只有单纯的元素属性不一定可以每次查找的元素都可以又唯一的属性去方便定位,这个时候我们可以将这两种定位方式结合起来使用。

比如查找搜索框的时候发现其上级元素form又唯一的id方便定位,就可以先查找到form元素然后依次往下写路径:

find_element_by_xpath("//form[@id=‘form’]/span/input")

CSS定位语法—绝对路径
查找第一个div元素中的“查询按钮”。
表达式:
Html>body>input[value=“查询”]

3.selenium定位元素及操作(二)_第3张图片
3.selenium定位元素及操作(二)_第4张图片

3.selenium定位元素及操作(二)_第5张图片

你可能感兴趣的:(3.selenium定位元素及操作(二))