【二】【selenium+python】發現頁面元素的方法介紹

本片文章拿百度首頁測試

一。id定位 :   find_element_by_id()

example.     find_element_by_id("kw")  定位輸入框

                      find_element_by_id("su")  定位百度一下按鈕

二。name定位 : find_element_by_name()

example.     find_element_by_name("wd")  定位輸入框

三。class定位:   find_element_by_class_name()

example.    find_element_by_class_name("s_ipt")  定位輸入框

                    find_element_by_class_name("bg s_btn")  定位百度一下按鈕

四。tag(標籤)定位:  find_element_by_tag_name() 

example.    find_element_by_tag_name("input")  你會發現,百度輸入框與百度按鈕的tag一樣,所以不好定位

    一般定位方法不用find_element_by_tag_name()

五。link定位 : 此方法與其他定位方法不一樣,專門用於定位文本鏈接 find_elemnet_by_link_text()

example.      find_element_by_link_text("新聞") 百度首頁右上角新聞按鈕

                      find_element_by_link_text(“hao123”) 百度首頁右上角hao123按鈕

  此外。find_element_by_partial_link_text() 是對link定位的一個補充,很可能有些文本鏈接會比較長,這個時候這個partial_link就是截取部分文本鏈接

六。xpath定位:   find_element_by_xpath("")   

    1.絕對路徑定位

  如上圖find_element_by_xpath("/html/body/div[2]/div/div/div/div/form/input")  定位百度輸入框

  xpath主要是用標籤名的層級關係來定位元素的絕對路徑。如果當前層級下有多個相同的標籤名,那麼按上下順序確定是第幾個。

   2.利用元素屬性定位 :除了絕對路徑外,Xpath也可以用元素的屬性值來定位

      以百度輸入框和搜索按鈕爲例

       find_element_by_xpath("//input[@id="kw"]")  

      find_element_by_xpath("//input[@id="su"]")

      //表示當前頁面某個目錄下,input表示定位元素的標籤名,@id="kw表示這個元素的id屬性值等於kw。元素的任意屬性值可以使用,只要它能唯一的標識一個元素,例如

    find_element_by_xpath("//input[@autocomplete="off"]")

 2.1 層級與屬性的結合

        如果一個元素本身沒有可以唯一標識這個元素的屬性值,那麼我們可以找上一級元素,如果它的上一級元素有可以表示的唯一屬性值,也可以拿來使用。例如  find_element_by_xpath("//span[@class="bs s_ipt_wr"]/input")

七。CSS定位


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章