Selenium3自動化測試【14】元素定位之ID

元素定位

Selenium須要告知其如何去定位元素,來模擬用戶動做。例如要操做Bing搜索頁。
 首先要找到搜索框與搜索按鈕;
 經過鍵盤輸入檢索的關鍵字;
 用鼠標單擊搜索按鈕;
 提交搜索請求。
Selenium可以模擬上面描述的動做,但Selenium並不理解如何在搜索框中輸入關鍵字或單擊搜索按鈕的操做。Selenium須要代碼告訴其如何定位搜索框或搜索按鈕,從而實現模擬人工的操做。
Selenium提供了多種方法用於定位元素(find_elementby),其中號表明可變的方法,例如id、name等。
Selenium提供了8種find_elementby方法用於定位元素。本節咱們會分別介紹這些方法,8種find_elementby方法以下表所示。
 find_element_by_id:經過元素的ID屬性值來定位元素;
 find_element_by_name:經過元素的name屬性值來定位元素;
 find_element_by_class_name:經過元素的class屬性值來定位元素;
 find_element_by_xpath:經過Xpath來定位元素;
 find_element_by_tag_name:經過元素的tag name來定位元素;
 find_element_by_css_selector:經過CSS選擇器來定位元素;
 find_element_by_link_text:經過元素標籤對之間的文本信息來定位元素;
 find_element_by_partial_link_text:經過元素標籤對之間的部分文本信息來定位元素;css

ID定位

id(find_element_by_id)是Selenium中較經常使用的定位方式,由於通常不會存在id重名的元素。
目前大部分技術研發團隊的開發方式,都採用的是先後端分離的技術。不少團隊在前端代碼提交後,在審覈代碼時,都會檢查元素的屬性定義,其中id的惟一就是檢查的一項。所以find_element_by_id方法是查找頁面上元素的最佳方法。
搜索框元素的屬性描述HTML代碼以下:html

<input class="b_searchbox" id="sb_form_q" name="q" title="輸入搜索詞" type="search" value="" maxlength="100" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" aria-controls="sw_as" aria-autocomplete="both" aria-owns="sw_as">

所以id=「sb_form_q」的定位方法就是find_element_by_id(「sb_form_q」),如圖所示。
Selenium3自動化測試【14】元素定位之ID
Selenium經過FireFox瀏覽器驅動操做輸入框的代碼以下:前端

from selenium import webdriver

driver=webdriver.Firefox()

driver.get("https://cn.bing.com/")
driver. find_element_by_id("sb_form_q").send_keys("bella")
driver.quit() # 關閉瀏覽器

打開PyCharm編譯器,建立1個工程,且在該工程下建立一個.py文件(py文件名本身命名便可,如Demo.py),而後將如上代碼敲入到建立的py文件中,如圖所示。
Selenium3自動化測試【14】元素定位之ID
右鍵單擊選擇Run 便可(如 Run ‘Demo’)運行代碼,觀察到以下操作。web

  • 打開FireFox瀏覽器;
  • 打開Bing首頁;
  • 鍵入Bella;
  • 關閉瀏覽器。

【測試全系列視頻課程】請點擊我哦.....
(https://edu.51cto.com/lecturer/968349.html)
Selenium3自動化測試【13】FireFox與Chrome瀏覽器元素定位後端

圖書京東、噹噹有售
京東:https://item.jd.com/12784287.html
噹噹:http://product.dangdang.com/29177828.htmlapi

Selenium3自動化測試【13】FireFox與Chrome瀏覽器元素定位
Selenium3自動化測試【14】元素定位之ID瀏覽器

相關文章
相關標籤/搜索