在自動化測試中,定位方法種類衆多,常用方法如下:
driver.find_element_by_id()
driver.find_element_by_name()
driver.find_element_by_class_name()
driver.find_element_by_tag_name()
driver.find_element_by_link_text()
driver.find_element_by_partial_link_text()
driver.find_element_by_xpath()
driver.find_element_by_css_selector()
在自動化測試中,重難點之一莫過於元素無法定位;目前我發現的原因有以下幾點:
1、定位元素的中的字符有誤(即拼寫有誤)
2、明明是xpath類型,在代碼中卻寫成其他類型;
3、警惕在.find_element_by中的element中多加了一個s,此時,報錯爲:'list' object has no attribute 'send_keys'
4、則爲自己真的定位錯誤,但是前三者爲人爲疏忽導致的錯誤,應該首先排除,否則會浪費大量時間。
5、由於網頁還在刷新延遲,程序又定位另一個元素導致,該元素不存在。報錯爲: Element <p class="ajicon-knodge icon-txt"> is not clickable at point (819.75,574) because another element <div id="loadingoverlay"> obscures it
解決辦法是增加延時Time.sleep(2)