selenium(5):常用的8种元素定位

selenium的webdriver提供了18种(注意不是8种)的元素定位方法,比较常用的定位方法是如下8种,xpath和css定位更加灵活,需要重点掌握其中一个。

经常会用到的8种定位:
1.id定位:find_element_by_id(self, id_)
2.name定位:find_element_by_name(self, name)
3.class定位:find_element_by_class_name(self, name)
4.tag定位:find_element_by_tag_name(self, name)
5.link定位:find_element_by_link_text(self, link_text)
6.partial_link定位find_element_by_partial_link_text(self, link_text)
7.xpath定位:find_element_by_xpath(self, xpath)
8.css定位:find_element_by_css_selector(self, css_selector)

 

一、id定位:find_element_by_id(self, id_)

 

通过上面百度搜索栏的定位,看到有个id属性:id="kw",通过它的id属性定位到这个元素,同时在定位到搜索框后,用send_keys()方法,输入文本。

二、name定位:find_element_by_name(self, name)

 

通过上面百度新闻的定位,看到有个name属性:name="tj_trnews",通过它的name属性单位到这个元素。

三、class定位:find_element_by_class_name(self, name)

通过上面百度搜索栏的定位,看到有个class属性:class="s_ipt",通过它的class属性单位到这个元素。

 

四、tag定位:find_element_by_tag_name(self, name)

 

在上面的定位元素属性中,可以看到每个元素都有tag(标签)属性。如搜索框的标签属性input ,在一个页面中,相同的标签有很多,一般不用标签来定位。下面的例子,仅供参考和理解,运行会报错.

 

五、link定位:find_element_by_link_text(self, link_text)

 

 定位百度页面上"hao123"这个按钮,从元素属性可以分析出,有个href = "http://www.hao123.com”说明它是个超链接,对于这种元素,可以用link属性定位。

六、partial_link定位find_element_by_partial_link_text(self, link_text)

    有时候一个超链接它的字符串比较长,输入全称会显示很长,这时候可以用一模糊匹配方式,截取其中一部分字符串进行模糊匹配方式(截取其中一部分字符串)。例如在五中的例子“hao123”,只需输入“ao123”也可以定位到。

七、xpath定位:find_element_by_xpath(self, xpath)

 以上定位方式都是通过元素的某个属性来定位的,如果一个元素它既没有id、name、class属性也不是超链接,这么办呢?或者说它的属性很多重复的。这个时候就可以用xpath解决。这个时候就可以用xpath解决。

八、css定位:find_element_by_css_selector(self, css_selector)

css是另外一种语法,比xpath更为简洁

 

posted @ 2018-05-03 17:47  奔跑中的兔子  阅读(539)  评论(0编辑  收藏  举报