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()函数

  • 相关阅读:
    Day5.打包解压,分区,软链接和硬链接
    Day4.权限命令
    Day3.linux基础命令
    macos proxy_bypass_macosx_sysconf exception
    网站收集
    django test
    django test, app aren't loaded yet
    sqlalchemy insert on duplicate update
    linux随机字符串
    Celery Received unregistered task of type
  • 原文地址:https://www.cnblogs.com/dingxinwen/p/14192929.html
Copyright © 2011-2022 走看看