zoukankan      html  css  js  c++  java
  • UI自动化之8种基础定位

    UI自动化的核心在于定位

    目录

    1、8种基础定位方法

    2、xpath定位

    3、css定位

    4、多组元素

    1、8种基础定位方法

        driver.find_element_by_id()   #id定位
        driver.find_element_by_name()  #name定位
        driver.find_element_by_class_name()   #class定位
        driver.find_element_by_tag_name()    #标签名定位,一般用于iframe;标签较少的也可以使用,用取下标的方式
        driver.find_element_by_xpath()           #xpath定位,可以用firepath来获得这个定位
        driver.find_element_by_css_selector()  #css定位
        driver.find_element_by_link_text()       #a标签的文本定位
        driver.find_element_by_partial_link_text()   #a标签的局部文本定位
    

      

    2、xpath定位

    //:相对定位

    *匹配任意标签

    第一种:idclass ame其他属性

    driver.find_element_by_xpath("//*[@id='']")          #id和值
    driver.find_element_by_xpath("//*[@class='']")   #class和值
    driver.find_element_by_xpath("//*[@name='']") #name和值,如:find_element_by_xpath("//*[name='']")
    driver.find_element_by_xpath("//*[@shuxingming='']") #属性名和值,如:find_element_by_xpath("//*[align='left']")
    

      

    第二种:模糊匹配层级索引逻辑运算

    模糊匹配:
    driver.find_element_by_xpath("//*[contains(text(),'测试')]") #包含某些字符 driver.find_element_by_xpath("//*[starts-with(text(),'测试')]") #以某些字符开头 driver.find_element_by_xpath("//*[ends-with(text(),'测试')]") #以某些字符结尾 driver.find_element_by_xpath("//*[matchs(text(),'测试')]") #正则匹配
    层级:
    driver.find_element_by_xpath("//*[@id='']/p")

    索引:
    driver.find_element_by_xpath("//*[@id='']/option[0]")


    逻辑运算:
    driver.find_element_by_xpath("//*[@class=''and @name='']")

    第三种:

    绝对定位,使用firepath:

    html/body/heard/div/div/div/div/ul/li[2]/a

    3、css定位

    第一种:idclass标签名

    driver.find_element_by_css_selector("#username") #id为username
    driver.find_element_by_css_selector(".username") #class为username
    driver.find_element_by_css_selector("iframe") #标签名为iframe

    第二种:

    索引:
    driver.find_element_by_css_selector("selet#nr>option:nth-child(1)") #标签名:nth-child(1)来定位子元素
    层级:
    driver.find_element_by_css_selector("selet#nr>option") #标签名:nth-child(1)来定位子元素
    逻辑运算:
    driver.find_element_by_css_selector("input#nr[id=''][class='']") #不用and连接,写在一起即可

     

    4、多组元素

    一组元素是find_element,多组就是find_elements,其他定位方法一样。只不过要通过下标索引的方式取得想要的值

    m=driver.find_elements_by_name("qq")
    print m[1]
    

      

  • 相关阅读:
    Go组件学习——Web框架Gin
    一次线上接口超时的排查过程
    Go组件学习——手写连接池并没有那么简单
    终于跑通分布式事务框架tcc-transaction的示例项目
    Go语言学习——如何实现一个过滤器
    Go组件学习——database/sql数据库连接池你用对了吗
    我们这一年 | 诗人呀
    NodeMan架构
    NodeMan介绍
    微信小程序录音实现
  • 原文地址:https://www.cnblogs.com/weizhideweilai/p/9581560.html
Copyright © 2011-2022 走看看