• selenium的定位


    1. id定位

               find_element_by_id()方法通过id来定位元素

    例如: find_element_by_id("kw")

                find_element_by_id("su")

            2.name 定位

     HTML规定name来指定元素的名称,那么的属性值在当前页面中可以不唯一。通过那么定位百度输入框

         find_element_by_name()方法通过name属性值来定位元素。由于百度收索框没有提供name属性,因此不能通过name属性来定位输入框

    例如:   find_element_by_name("wd")

           3.class定位

    HTML中规定class来指定元素的类名,可以定位输入框和收索框

          find_element_by_class_name()方法通过class属性来定位元素。

    例如:find_element_by_class_name("s_ipt")

              find_element_by_class_name("bg_s_btn")

          4.tag定位

    通过tag_name定位百度输入框与百度按钮。

          find_element_by_tag_name()方法通过元素的tag name来定位元素

    例如:find_element_by_tag_name()

        5.link定位

       通过link专门定位文本链接。

    通过link定位的链接如下:

    find_element_by_link_text("新闻")

    find_element_by_link_text("地图")

    通过find_element_by_link_text()方法通过元素标签对之间的文本信息来定位元素。

       6.parital link定位

        partial link定位是对link定位的一种补充,有些文办理按揭过长,这是我么可以取文本链接的一部分定位,只要这一部分信息可以唯一的标识 这个链接

      通过partiallink定位如下:

      find_element_by _partial _link _text("很长文本链接的一部分")

        find_element_by_partial_link_text()方法通过元素标签对之间的部分文本信息来定位元素。

     7.Xpath定位

        XPath有多种定位策略,因为HTML可以看做xml的一种shiyo实现,所以selenium用户可以使用这种你再强大的语言在web 应用中定位元素

     7.1绝对路径定位

        xpath有多种定位策略,最简单直观的就是写出元素的绝对路径。

        find_element_by_xpath()方法使用XPATH语言来定位元素。Xpath主要使用标签名的层级关系来定位元素的绝对路径,最外层为html语言。在body文本内,一级一级往下查找。如果一个层级下有对各相同的标签名,那么就按上下顺序确定第几个。例如:div[2]表示当前层级下的第二个div标签。

     7.2利用元素属性定位

    除了使用绝对路径外,Xpath也可以使用元素的属性来定位。同样以百度收索框和搜索按钮为例:

    find_element_by_xpath("//*[@id="kw"]")

    find_element_by_xpath("//*[@id="su"]")

    注:1.属性值要用用单引号表示

     2.//表示当前页面的某个目录,input表示定位元素的标签名,[@id="kw"]表示元素的id属性值等于kw

    下面是通过name 和class属性值来定位。

    find_element_by_xpath("//*[@class="bg s_btn"]")

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

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

    如果不想指定标签名,则可以用星号(*)代替,使用Xpath不局限于id,name和class这个三个属性值,元素的任意属性值都可以使用,只要它能唯一标识一个元素。

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

    find_element_by_xpath("//input[@autocomplete='OFF']")

    find_element_by_xpath("//input[@type='submit']")

    7.3层级定位

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

    span[@class='bg_s_ipt_wr']通过class属性定位到父元素,后面/input就表示父元素下满的子元素。如果父元素没有利用的属性值。

    find_element_by_xpath(“//form[@id='form']/span/input”)

    find_element_by_xpath("//form[@id='form'span(2)/input]")

    我们可以通过该方法一级一级的向上查找,知道找到最外层的<html>标签,即可写出一个绝对路径

    7.4使用逻辑运算符

    如何一个属性不能唯一区分一个元素,可以使用逻辑运算符连接多个属性来查找元素

    8.CSS定位

    CSS(Cascading Style Sheets)层叠样式表是一种语言,它用来表示HTML和XML文档的表现,CSS使用选择器来为页面绑定属性。这些选择器可以被Sselenium用做另外的定位策略。

      id name  class  parital link        
    方法 find_element_by_id() find_element_by_name()  find_element_by_class_name()  find_element_by_partial_link_text()        
    例子

    find_element_by_id("kw")

     find_element_by_id("su")

     find_element_by_name("wd")  

    find_element_by_class_name("s_ipt")

     find_element_by_class_name("bg_s_btn")

      find_element_by _partial _link _text("很长文本链接的一部分")        
    范围 1.输入框  输入框  输入框和收索框          

     

  • 相关阅读:
    字典dict
    数组处理
    switch语句
    java基础复习2
    位运算
    内存中占用的字节
    java基础复习
    常用快捷键
    利用Typora设计博客的方式
    java数据结构-排序算法-堆算法
  • 原文地址:https://www.cnblogs.com/fengyiru6369/p/7069111.html
Copyright © 2020-2023  润新知