selenium做网页UI自动化的时候,会遇到网页元素id/name是动态生成的情况
一、可以考虑模糊匹配定位,匹配元素定位中不变且唯一的地方.
1.可以使用如下方法:
starts-with(以什么开始)
ends-with(以什么结束)
contains 包含**
eg:
driver.find_element_by_xpath
("//div[contains(@id, ‘btn-attention’)]")
driver.find_element_by_xpath
("//div[starts-with(@id, ‘btn-attention’)]")
driver.find_element_by_xpath
("//div[ends-with(@id, ‘btn-attention’)]")
contains(a, b) 如果a中含有字符串b,则返回true,否则返回false
starts-with(a, b) 如果a是以字符串b开头,返回true,否则返回false
ends-with(a, b) 如果a是以字符串b结尾,返回true,否则返回false
2. 如果父级元素固定,可以先定位到父级元素,然后定位到下级元素