怎麼定位這類型的元素呢?
根據其餘屬性定位
若是有其餘固定屬性,最早考慮的固然是根據元素的其餘屬性來定位,定位方式那麼多,何須在這一棵樹上吊死。。
根據相對關係定位
根據其附近的父節點、子節點、兄弟節點定位,關於這方面,微信以前有文章作介紹。
根據DOM順序index定位
這個很簡單,找到該元素在主文檔或某級父節點中的index,而後根據index可輕鬆定位,不過這種方式可能不夠穩定,若是能夠,仍是用其餘的方法定位更加合適。
根據部分元素屬性定位
xpath中提供了三個很是好的方法來爲咱們定位部分屬性值:瀏覽器
driver.find_element_by_xpath
("//div[contains(@id, 'btn-attention')]")微信
我這裏用到的是:element
driver.find_element_by_xpath文檔
("//div[starts-with(@id, 'btn-attention')]")字符串
driver.find_element_by_xpath
("//div[ends-with(@id, 'btn-attention')]")
# 這個須要結尾是‘btn-attention’
contains(a, b) 若是a中含有字符串b,則返回true,不然返回false
starts-with(a, b) 若是a是以字符串b開頭,返回true,不然返回false
ends-with(a, b) 若是a是以字符串b結尾,返回true,不然返回falseit
PS:各類瀏覽器對xpath的支持狀況不同,像IE就差點,因此有時候會出現xpath在一個瀏覽器能定位到但在另外一個瀏覽器定位不到的問題io