selenium Python 学习笔记之三 CSS 元素定位

1、什么是CSS?

  CSS是层叠样式表,是一种用来表现HTML或xml等文件样式的语言。CSS不仅可以静态的修饰网页,还可以配合各种脚本语言动态的对网页各元素进行格式化

  CSS能够对网页中元素位置的排版进行像素级精确控制,支持所有的字体样式,拥有对网页对象和模型样式编写的能力

  

CSS还可以用来在selenium中定位元素

 

CSS定位元素的方法:

  find_element_by_css_selector(css_selector) # css_selector 表示的是css选择器表达式

2、CSS定位策略

  id选择器

  class选择器

  元素选择器

  属性选择器

  层级选择器

 2.2.1 id选择器

  --表达式  #id   # 表示通过元素的id的属性进行元素的选择,id表示的id属性的值

2.2.2 class 选择器

  表达式  .class  # . 表示通过元素的class属性进行元素选择,class表示的class属性的其中一个属性值

2.2.3 元素选择器

  就是通过元素标签名称来选择元素。表达式  tag_name  不推荐 --- 原因:tag_name 重复的太多了,很难精准的定位到一个元素的位置

2.2.4 属性选择器

  就是通过元素的属性来选择元素,表达式[attribute = 'value']

  # attribute 为属性的名称,value为属性的值

  eg:  [placeholder = "请输入用户名"]

  如果使用的是class属性,需要带上class的全部属性值

2.2.5 层级选择器

  -父子层级关系选择器

    表达式:element1>element2 通过element1找element2并且element2是element1的直接子元素

  -隔代层级关系选择器

    表达式:element1  element2 通过element1 来找element2,element2 是element1的后代元素

  eg:  #pa > input

     #pa  label

2.2.6 CSS扩展

  -input[type^ = 'value'] input 表示标签名称,type表示属性名称,value表示的文本内容   --查找元素type属性值是以value开头的元素

  -input[type$ = 'value'] input表示标签名称,type表示属性名称,value表示的文本内容 -查找元素type属性值以value结尾的元素

  -input[type*='value'] input 表示标签名称,type表示属性名称,value表示文本内容,查找元素包含value‘的元素

  eg:  input[placeholder*="用户名"]

      input[placeholder$="密码"]

      input[placeholder^="延时"]

元素定位总结:

  1、直接用selenium中自带的定位元素函数定位,find_element_by_id(id);find_element_by_class_name(class_name)等来定位

  2、使用xpath中的定位方法来定位 find_element_by_xpath(xpath)来定位

    --路径定位

      --绝对路径

      --相对路径

    --元素的属性定位

      //tag_name[@attribute = 'value' ]

    --属性与逻辑结合

      //tag_name[@attribute = 'value' and @attribute2 = 'value2']

    --属性与层级结合

      //tag_name[@attribute='value']/input

  3、css定位,css定位效率最高  但是使用最多的是xpath或者css

    

posted @ 2021-08-15 00:06  GalaxyStar  阅读(499)  评论(0编辑  收藏  举报