selenium8种常用元素定位简介

1.ID定位

元素id的值在当前整个HTML页面当中是唯一的,所以可以通过id属性来唯一定位这个元素

示例代码:

driver.find_element_by_id("kw)

注意有些系统中元素id每次访问都不一样,这种情况下就不适合用id来定位元素。

2.name定位

示例代码:

driver.find_element_by_name("wd")

3.class name定位

元素的class属性主要是来元素进行分组,并对这一级的元素设置相同的样式。

示例代码:

driver.find_element_by_claa_name("s_ipt")

注意:class属性有空格隔开时,应只保留隔开一部分作为定位参数,如“<a href="//ke.qq.com" class="header-index-logo js-header-index-logo" report-tdw="action=rainbow-logo-clk" title="腾讯课堂_专业的在线教育平台"></a>”

错误的classname定位方式:

driver.find_element_by_class_name("header-index-logo js-header-index-logo")

正确的classname定位方式为:

driver.find_element_by_class_name("header-index-logo")
#或者
driver.find_element_by_class_name("js-header-index-logo")

  

4.tag name定位

示例代码:

driver.find_element_by_tag_name("a")

5.link定位

链接文本内容全部匹配,如<a href="//ke.qq.com/course/373394" target="_blank" class="item-tt-link" title="高中数学寒假冲刺班" report-tdw="action=Coursecard_Coursesname-clk&amp;ver1=373394&amp;ver3=custom-course.高中免费体验课.1.2" cors-name="course"></a>“”

示例代码:

driver.find_element_by_link_text("高中数学寒假冲刺班")

6.partial link定位

链接文本内容部分匹配

示例代码:

driver.find_element_by_partial_link_text("高中数学")

7.xpath定位

前面6种定位方式都是针对元素的单一属性来定位的,实际应用中经常需要组合以上各种情况才能定位到一个元素。

xpath和css定位就能实现各种组合,基本可以覆盖所有元素的定位。

示例代码:

driver.find_element_by_xpath("//img[@class="tang-pass-qrcode-img"])

8.CSS定位

示例代码:

driver.find_element_by_css_selector('.ant-modal-body>span[class*="ant-select"]')

 当我们想在页面中找到一组元素,比如当前页面中的所有链接时,我们可以用find_elements_by_name(class_name/tag_name/link_text/partical_link_text/xpath/css_locator)来定位。

此函数返回的是一个列表,列表中存储的是符合定位表达式的所有元素。

 

关于xpath定位的方法,后面会有单独一篇文章来详细介绍。

 

 

posted @ 2020-03-11 18:03  吃个鱼丸  阅读(572)  评论(0编辑  收藏  举报