zoukankan      html  css  js  c++  java
  • selenium定位动态元素的2种情况

    1.定位动态的id或class的元素

    某个xpath元素(id后面的数字为变动的):

      //*[@id="el-popover-6271"]/div[1]/div/div[1]/div/div/div[2]/div/div
      //*[@id="el-popover-3090"]/div[1]/div/div[1]/div/div/div[2]/div/div
      //*[@id="el-popover-7101"]/div[1]/div/div[1]/div/div/div[2]/div/div
    可以写为:("//*[contains(@id,"el-popover")]/div[1]/div/div[1]/div/div/div[2]/div/div")

    在这个id里面,el-popover这个是不会变的,只要返回这个就可以了,[contains(@id,"el-popover")]为id里面包含字符串el-popover,返回true

    driver.find_element_by_xpath ("//div[contains(@id, 'auto-id')]")

    driver.find_element_by_xpath ("//div[starts-with(@id, 'auto-id')]")

    driver.find_element_by_xpath ("//div[ends-with(@id, 'auto-id)]")

    #contains(a, b) 如果a中含有字符串b,则返回true,否则返回false

    #starts-with(a, b)如果a是以字符串b开头,返回true,否则返回false

    #ends-with(a, b)如果a是以字符串b结尾,返回true,否则返回false

    2.定位某个元素时,元素的xpath里面的div[x] 发生变化 (x为变化的数字),可以使用last()函数

  • 相关阅读:
    filter 静态资源
    getRequestURI,getRequestURL的区别
    基于NodeJs的网页爬虫的构建(二)
    基于NodeJs的网页爬虫的构建(一)
    Reverse Words in a String
    Sum Root to Leaf Numbers
    Search Insert Position
    Wildcard Matching
    Trapping Rain Water
    Gray Code
  • 原文地址:https://www.cnblogs.com/dingxinwen/p/14192929.html
Copyright © 2011-2022 走看看