如何定位动态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')