web自動化測試之元素定位

元素定位常用八大方法:

以百度輸入框爲例:

<input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">

<a href="http://tieba.baidu.com" target="_blank" class="mnav">貼吧</a>

序號 方式 舉例
1 通過id定位 driver.find_element_by_id('kw')
2 通過name定位 find_element_by_name('wd')
3 通過class定位 find_element_by_class_name('s_ipt')
4 通過xpath定位 find_element_by_xpath('//*[@id="kw"]')
5 通過css定位 find_element_by_css_selector('#kw')
6 通過tag name 定位 driver.find_element_by_tag_name('input')
7 通過超鏈接全部文本內容定位 find_element_by_link_text('貼吧')
8 通過超鏈接部分文本內容定位 find_element_by_partial_link_text('貼')

 

 

 

 

 

 

 

 

 

 

 

ps:path和css定位,在firefox瀏覽器中都可以使用firepath插件來驗證。

1. Xpath 定位

  • 絕對路徑(不推薦)

是一個完整的xpath路徑,可通過瀏覽器插件定位並直接生成。但因爲這種方式是直接寫死的,頁面一旦發生改動,維護成本非常大,所以我們一般都採用相對路徑。例如:xpath=/html/body/div[2]/div[1]/div/div[1]/div/form/span[1]/input

  • 相對路徑(推薦)

    就是使用元素本身定位。例://*[@id="kw"]

  • xpath常用符號:
    •   /   表示絕對路徑絕對路徑是指從根目錄開始
    •   //     表示相對路徑
    •   .   表示當前層
    •   ..     表示上一層
    •   *   表示通配符
    •   @   表示屬性
    •   []     屬性的判斷條件表達式
  • xpath定位常用函數:
    • contains (): //div[contains(@id,'widget')],選擇id屬性中包含'widget'的div
    • text(): //a[text()='hello world'],選擇文本值爲'hello world'的節點
    • last(): 選擇最後一個
    • starts-with(): //div[starts-with(@id,'common')] ,選擇id屬性中’common’開頭的div節點  
    • not(): 否定 

 

2、CSS 定位

  • css常用符號:
    • #  表示id
    • .  表示class
    • >  表示子元素,層級 
    • (空格) 一個空格也表示子元素,但是是所有的後代子元素,相當於xpath中的相對路徑 

例:

<div class="input_class" type="text" name="passwd" id="passwd-id" /> 

  • #input          選擇id爲passwd-id的節點
  • .input_class        選擇class爲input_class的節點
  • div#passwd-id>input   選擇id爲passwd-id的div下的所有的input節點
  • div#passwd-id input    選擇id爲passwd-id的div下的所有的input節點
  • div.input_class[name='passwd']     選擇class爲input_class並且name爲passwd的節點
  • div[name='passwd'][type='text']    選擇name爲passwd且type爲text的節點

 

 

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