• 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()
  • 相关阅读:
    使用keepalived实现双机热备
    MYSQL ERROR CODE 错误编号的意义
    Mysql slow query log
    eclipse svn 分支合并到主干
    Timer的schedule和scheduleAtFixedRate方法的区别解析
    Java内部类引用外部类中的局部变量为何必须是final问题解析
    nginx中有关命令和日志切割,配置文件加载的详细阐述
    流媒体中ffmpeg 命令的使用
    windows下搭建nginx服务器及实现nginx支持https配置流程
    mysql 中sql语句的执行顺序
  • 原文地址:https://www.cnblogs.com/csj2018/p/9242638.html
Copyright © 2020-2023  润新知