1.有哪些元素定位方式
大家在使用IDE寫自動化代碼時,會看到web元素的定位方法有很多將近20個。
為何有這麼多個方法?前邊提到的八種元素定位方式,對應了8個方法。這裡列舉如下:
2.使用上的區別
我們仔細觀察元素定位方法名稱可以識別到,這是兩套方法,都可以按照八種方式進行元素定位,但是前者是find_element_xx返回一個web元素,後邊一套方法是find_elements_xx返回的是多個元素即列表。
這裡隱含一個web現狀:
通過任何一種方式進行元素定位時,都可能匹配到一個或多個元素。雖然我們一般理解ID或name可以唯一標識一個元素,但是在前端,它並不是強制性的要求,也就是說我們可能看到同名甚至同ID的元素。web前端代碼的不規範導致自動化腳本書寫或維護比較麻煩。
另外一個隱含的使用區別方式:
如果匹配到多個元素,find_element_xx方法默認返回第一個匹配元素,而find_elements_xx方法返回多個元素的列表。
還有一個使用上的區別:
如果沒有匹配到元素,find_element_xx方法會拋出異常,而find_elements_xx方法返回空列表。
3.*最後的find_element方法和find_elements方法兩者區別同上。
跟前邊多個方法比較而言,這是個通用元素定位方法,在方法名稱上不區分定位方式,而是在參數中體現。如: driver.find_element(By.ID,'su')
更多內容請參考: