zoukankan      html  css  js  c++  java
  • python selenium-2 定位元素

    元素
    方法
    示例
    id
    find_element_by_id('su')
     
    driver.get("http://www.baidu.com")
    driver.find_element_by_id("kw").send_keys("selenium")
    driver.find_element_by_id('su').click()
    name
    find_element_by_name("wd")
     
    driver.get("http://www.baidu.com")
    driver.find_element_by_name("tj_trnews").click()

    class name

    find_element_by_class_name()
     不常用
    tagname
    find_element_by_tag_name()
    div form a相似的很多,也不常用 
    link text
    find_element_by_link_text("新闻")
     
    river.get("http://www.baidu.com")
    driver.find_element_by_link_text("新闻").click()
    partial link text
    find_element_by_partial_link_text("新闻")
    driver.get("http://www.baidu.com")
    driver.find_element_by_partial_link_text("闻").click()
     
    xpath
      
    
    

    绝对路径
    driver.get("http://www.baidu.com")
    driver.find_element_by_xpath("/html/body/div/div/div/div[3]/a[3]").click()
    元素属性定位
    river.get("http://www.baidu.com")
    driver.find_element_by_xpath("//a[@name="tj_trmap"]").click()或
    driver.find_element_by_xpath("//*[@name="tj_trmap"]").click()
     
     
    层级与属性结合

     元素本身没有可以唯一标识的属性值,如果上级元素有可以唯一标识属性的值,就可以拿来用

    driver.get("http://www.baidu.com")
    driver.find_element_by_xpath("//form[@id="form"]/span/input").send_keys("selenium")
    driver.find_element_by_xpath("//span[@class="bg s_btn_wr"]/input[@id="su"]").click()
     
    使用逻辑运算符
    driver.get("http://www.baidu.com")
    driver.find_element_by_xpath("//input[@id="kw" and @name="wd"]").send_keys("selenium")
    driver.find_element_by_xpath("//input[@id="su" and @type="submit"]").click()
    右键-复制xpath
     
    css 
       

     .class

    driver.get("http://www.baidu.com")
    driver.find_element_by_css_selector(".s_ipt").send_keys("selenium")
    driver.find_element_by_css_selector(".s_btn").click()

     如果存在多个相同class的元素,可以通过nth-child(index)来寻找目标元素,如:

    driver.find_element_by_css_selector(".mnav:nth-child(3)").click()
    #id  
    driver.get("http://www.baidu.com")
    driver.find_element_by_css_selector("#kw").send_keys("selenium")
    driver.find_element_by_css_selector("#su").click()
    通过标签名定位  标签名重复的概率非常大,通过这种方式很难找到想要的元素
    通过属性定位  
    driver.get("http://www.baidu.com")
    driver.find_element_by_css_selector("[id="kw"][name="wd"]").send_keys("selenium")
    driver.find_element_by_css_selector("[id="su"]").click()
    组合定位  
    driver.get("http://www.baidu.com")
    driver.find_element_by_css_selector("form[class="fm"]>span>input[id="kw"][name="wd"]").send_keys("selenium")
    driver.find_element_by_css_selector("form#form>span>input#su").click()
  • 相关阅读:
    基于 jQuery 实现的非常精致的自定义内容滑动条
    异步加载js,Css方法
    jquery ready()的几种实现方法小结
    javascript事件绑定,取消,addEventListener,removeEventListener,attachEvent,detachEvent
    JSONP跨域访问,通过动态加入javascript实现
    抓包
    devops docker笔记
    linux 命令
    ubuntu16 mysql5.7 数据占满磁盘mysql服务停止的恢复方法
    devops kubernates
  • 原文地址:https://www.cnblogs.com/csj2018/p/9242638.html
Copyright © 2011-2022 走看看