Selenium动态元素定位

  如何定位动态id元素呢?

  • 使用其他元素定位

    如果元素有其他的唯一属性值,如class name、name等,我们可以使用这些属性来定位。

  • 根据相对关系定位

    根据父子、兄弟相邻节点定位

  • 根据部分元素属性定位

    Xpath提供了3种非常强大的方法来支持定位部分属性值。contains(a,b):如果a中包含有字符串b,则返回True,否则返回False。start-with(a,b):如果a以字符串b开头,则返回True,否则返回False。               end-with(a,b):如果a以字符串b结尾,返回True,否则返回False。  

  示例如下:

    driver.find_element(By.XPATH,'//*[contains(@id,"general-table")]/tbody/tr[3]/td[2]/select')

    driver.find_element(By.XPATH,'//*[starts-with(@id,"general-table")]/tbody/tr[3]/td[2]/select')

    driver.find_element(By.XPATH,'//*[end-with(@id,"general-table")]/tbody/tr[3]/td[2]/select')

    

原文地址:https://www.cnblogs.com/mtfan01/p/15756210.html