selenium(2):元素定位

Selenuim+Python之元素定位总结及实例说明

 

  网页自动化最基本的要求就是要定位到各个元素,然后才能对该元素进行各种操作(输入,点击,清除,提交等),所以笔者今天来总结下Selenuim+Python最基本的几种定位方式及实例说明,希望能帮助到大家。

通过XPath定位元素

XPath是一种XML文档中定位元素的语言。该定位方式也是比较常用的定位方式。

 

 

使用:find_element_by_xpath("XPath")

实例:

1.1通过属性定位元素

find_element_by_xpath("//标签名[@属性='属性值']")

id属性:

find_element_by_xpath("//input[@id='kw']")

class属性:

find_element_by_xpath("//input[@class='s_ipt']")

name属性:

find_element_by_xpath("//input[@name='wd']")

maxlength属性:

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

1.2通过标签名定位元素

指所有input标签元素

find_element_by_xpath("//input")

1.3父子定位元素

查找有父亲元素的标签名为span,它的所有标签名叫input的子元素

find_element_by_xpath("//span/input") 

1.4根据元素内容定位元素(非常实用)

find_element_by_xpath("//p[contains(text(),'京公网')]") 

<p id="jgwab">
<i class="c-icon-jgwablogo"></i>
京公网安备11000002000001号
</p>

注:contains的另一种用法

//input[contains(@class,'s')]

说明class属性包含s的元素。

1.5组合定位元素

//父元素标签名/标签名的属性值:指的是span下的input标签下class属性为s_ipt的元素

find_element_by_xpath("//span/input[@class='s_ipt']")

多个属性组合定位(挺常用的)

指的是input标签下id属性为kw且name属性为wd的元素

find_element_by_xpath("//input[@class='s_ipt' and @name='wd']")

指的是p标签下内容包含“京公网”且id属性为jgwab的元素

find_element_by_xpath("//p[contains(text(),'京公网') and @id='jgwab']")  

 

 

 

 

通过CSS定位元素

 

 

 

使用:find_element_by_css_selector("CSS")

实例:

2.1通过id属性定位元素

#号表示通过id属性来定位元素

find_element_by_css_selector("#kw")

2.2通过class属性定位元素

.号表示通过class属性来定位元素

find_element_by_css_selector(".s_ipt")

2.3通过标签名定位元素

find_element_by_css_selector("input")

2.4通过属性定位元素(挺常用的)

find_element_by_css_selector("[name='wd']")

find_element_by_css_selector("[maxlength='255']")

属性值包含某个值

属性值包含wd:适用于由空格分隔的属性值。

find_element_by_css_selector("[name~='wd']")

2.5父子定位元素

查找有父亲元素的标签名为span,它的所有标签名叫input的子元素

find_element_by_css_selector("span>input") 

2.6组合定位元素

标签名#id属性值:指的是该input标签下id属性为kw的元素

find_element_by_css_selector("input#kw")

标签名.class属性值:指的是该input标签下class属性为s_ipt的元素

find_element_by_css_selector("input.s_ipt")

标签名[属性=’属性值‘]:指的是该input标签下name属性为wd的元素

find_element_by_css_selector("input[name='wd']")

父元素标签名>标签名.class属性值:指的是span下的input标签下class属性为s_ipt的元素

find_element_by_css_selector("span>input.s_ipt")

 

多个属性组合定位元素(挺常用的)

指的是input标签下name属性为wd且maxlength为255的元素

find_element_by_css_selector("input[name='wd'][maxlength='255']")

posted @ 2021-06-10 16:25  Tester-**  阅读(111)  评论(0编辑  收藏  举报