上一篇文章,介紹了xpath定位,咱們基本瞭解了元素的8種定位方法。今天咱們要學習的是By定位及如何肯定元素惟一。
By定位
有時候咱們不知道用哪一種方法來定位元素,By定位能夠根據實際場景設定定位策略。
By定位和以前學習的八種定位方法差很少,只不過是寫法上的不一樣。
語法以下:
咱們以百度搜索框爲例,看下用By定位是怎麼寫的
By定位只是把8種定位統一成一個寫法。
若是以爲導入By類麻煩,又想把8種寫法統一塊兒來,有辦法麼,固然,咱們接下來介紹簡化版的:
By.ID = 'id'
By.NAME = 'name'
By.LINK_TEXT = 'link text'
By.PARTIAL_LINK_TEXT = 'partial link text'
By.TAGE_NAME = 'tag name'
By.CLASS_NAME = 'class name'
By.CSS_SELECTOR = 'css selector'
By.XPATH = 'xpath'
用百度搜索框爲例,寫簡化版的定位
是否是發現,這種寫法更方便呢。
定位元素的惟一性
咱們在寫自動化腳本過程當中,會遇到由於元素不是惟一致使定位元素失敗的場景,
那麼咱們能夠先肯定此元素是否惟一,再來定位元素。
以百度搜索框爲例:
1、在源碼中查找
1.瀏覽器打開開發者模式(F12),定位到百度搜索框上,發現源碼以下:
<input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">
2.以前css定位講過,class="s_ipt"、id="kw",css定位能夠寫成input.s_ipt,input#kw,
那麼快捷鍵Crtl+F,在開發者工具左下角搜索框輸入.s_ipt 或 #kw,回車進行搜索
3.搜索到了會高亮顯示,發現只有一條結果,那麼咱們能夠肯定這個元素是惟一的,放心的定位了。有時候也會搜索出多個結果,這個時候咱們回車鍵依次查看,元素是否惟一。
2、在控制檯查找
在控制檯console中肯定元素的惟一,主要是使用JavaScript獲取HTML DOM元素的方法,語法以下:
-
id 獲取:document.getElementById()
-
class 獲取:document.getElementsByClassName()
-
name 獲取:document.getElementsByName()
-
tag 獲取:document.getElementsByTagName()
-
CSS 獲取:document.querySelector()
1.在開發者工具中,切換到console一欄,以下:
二、以百度瀏覽器輸入框爲例
<input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">
其中id="kw",那麼能夠寫成document.getElementById('kw')
在console下輸入document.getElementById('kw'),而後回車
只返回了一條數據,且是咱們要查找的元素,那麼咱們能夠肯定此元素是惟一的,能夠放心的定位了。
下一篇咱們將介紹定爲一款定位神器
若是學習中有什麼疑問,歡迎關注公衆號:ITester軟件測試小棧