web自動化過程中,對於風格比較統一的界面,很多樣式會出現重複,可能在使用CLASS_NAME定位時導致定位錯誤。
如下圖,你想用CLASS_NAME定位【新增】,find_element(By.CLASS_NAME,“btn.btn-sm.btn-info”),但是因爲【一鍵刪除】在【新增】的前面,且其class屬性值爲"btn btn-sm btn-info del-item",根據元素的查找順序是從上至下的,所以會先定位到【一鍵刪除】。
原因很簡單,"btn btn-sm btn-info"是"btn btn-sm btn-info del-item"的子串,CLASS_NAME元素定位方法類似於關鍵字查找。CLASS_NAME元素定位會以第一個符合匹配條件的來返回查找結果,所以,查找元素的結果並不符合預期,導致元素定位失敗。
總結:在元素定位過程中,要多查找頁面是否存在重複的屬性值,以準確找到目標元素。