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:通過元素标簽對之間的部分文本資訊來定位元素;
id(find_element_by_id)是Selenium中較常用的定位方式,因為一般不會存在id重名的元素。
目前大部分技術研發團隊的開發方式,都采用的是前後端分離的技術。很多團隊在前端代碼送出後,在稽核代碼時,都會檢查元素的屬性定義,其中id的唯一就是檢查的一項。是以find_element_by_id方法是查找頁面上元素的最佳方法。
搜尋框元素的屬性描述HTML代碼如下:
是以id=“sb_form_q”的定位方法就是find_element_by_id(“sb_form_q”),如圖所示。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5yYkRzY0UjYhRWYkFTY0kjNzMzYhFWOhFjNwITMxETNy8CX0IzLcJDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL0M3Lc9CX6MHc0RHaiojIsJye.png)
Selenium通過FireFox浏覽器驅動操作輸入框的代碼如下:
打開PyCharm編譯器,建立1個工程,且在該工程下建立一個.py檔案(py檔案名自己命名即可,如Demo.py),然後将如上代碼敲入到建立的py檔案中,如圖所示。
右鍵單擊選擇Run 即可(如 Run ‘Demo’)運作代碼,觀察到如下操做。
打開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.html