web自動化知識點 02

2021-10-01 11:43:00 字數 3263 閱讀 1877

webdriver元素定位

一、id定位

說明:html規定id屬性在整個html中必須是唯一的,id定位是通過元素的id屬性來定位元素

前提:該元素存在屬性

id定位元素的方法:find_element_by_id()

id定位元素的實現步驟

1、匯入selenium包-->from selenium import webdriver

2、匯入time-->import time

3、例項化火狐瀏覽器-->driver = webdriver.firefox()

4、開啟特定頁面-->driver.get(url)

5、呼叫id的定位方法-->driver.find_element_by_id("")

6、使用send_keys()方法傳值-->.send_keys()

7、暫停3秒-->sleep(3)

8、關閉瀏覽器-->quit()

二、name定位

說明:html規定name屬性來指定元素的名稱,name屬性值在當前文件中可以不是唯一的,name定位是根據元素的name屬性來定位的。

前提:元素有name屬性

name定位元素的方法:find_element_by_name()

name定位元素的實現步驟:同id定位

三、class_name定位

說明:html規定了class來指定元素的類名,用法和id,name類似。(id是唯一的)

前提:元素有class屬性

class_name元素定位的方法:find_element_by_class_name()

四、tag_name定位

說明:html是由不同的tag組成,而每個tag都是指同一類,所以tag定位效率比較低,一般不建議使用,tag_name的定位就是指通過標籤名來定位

tag_name的定位方法:find_element_by_tag_name()     返回結果:返回的結果是符合條件的第乙個標籤

五、link_text定位

link_text定位方法:find_element_by_link_text()

六、partial_link_text定位

說明:用來定位標籤,模糊匹配,需要傳入a標籤的區域性文字,且代表唯一性。

partial_link_text的定位方法:find_element_by_partial_link_text()

七、find_elements_by_***()定位 (其中element為複數)

作用:查詢定位所有符合條件的元素

返回的定位元素為列表形式

說明:列表資料的讀取需要指定下標

例子:使用tag_name 獲取第二個元素

driver.find_elements_by_tag_name('input')[1]  

八、xpath

實際專案中存在沒有id和name屬性的情況,並且id,name,class屬性值為動態獲取,隨著載入的變化而變化,此時需要使用xpath和css定位。​xpath​ 

1、xpath為xml path的簡稱,用來確定xml文件中某個節點位置的語言。

2、html可以看作是xml的一種實現,所以selenium使用者可以使用這種強大的語言在web應用中定位元素

xml:一種標記語言,用於資料的儲存和傳遞,字尾.xml結尾

xpath的定位策略:

1、路徑定位

絕對路徑:絕對路徑是以/開始,中間不能跳躍元素

2、利用元素定位

3、層級和屬性結合

當父級含有屬性,子級不含有屬性的時候,需要通過父級來尋找子集 eg://*[@id = 'p1']/input (用相對路徑尋找id屬性為p1的標籤下的標籤為input的子標籤)

4、屬性與邏輯結合

當元素之前有相同的屬性,使用and ://input[@id='p1' and @class='name'] (使用相對路徑找到@id='p1' and @class='name'的input標籤)

xpath定位的方法:driver.find_element_by_xpath()

xpah案例:

5、xpath的延伸:

1)//*[text()='******x']     查詢到文字內容是***x的標籤(其中文字內容是全部匹配)

2)//*[start-with(@屬性名稱,'***x')]    查詢屬性值以***x開頭的 (//*[start-with(@id,'p')] )

3)  //*[contains(@屬性名稱,'***x')]     查詢屬性值包含***(//*[contains(@id,'word')] )其中***x為相連的字元

九、css定位

css:是一種語言,它用來描述html和xml的元素的顯示樣式

css:有兩種書寫形式:第一種是直接在html中進行書寫,.... 。第二種是書寫成乙個以css為字尾的檔案。在css語言中有css選擇器,可以利用選擇器找到該元素。

在selenium中推薦使用css定位,因為比xpath要快。

css定位的方法:driver.find_element_by_css_selector()

其中css的選擇器:id選擇器,class選擇器,元素選擇器,屬性選擇器,層級選擇器。

id選擇器:必須使用#進行修飾(#id標籤的值:#password)

class選擇器:使用『.』來修飾(.class標籤的值:.password)前提是該標籤必須有class屬性

元素選擇器:根據元素名稱就行,直接使用標籤名稱;input

屬性選擇器:[id = usera],選擇id為usera的標籤

層級選擇器:根據元素的父子關係來選擇的     例如:p>input  返回所有p元素先的所有的input元素

其中的》可以用空格代替p input    (p [id = 'password']   返回p標籤下面id為password的標籤)

css延伸:input[id^='p']: id屬性已p開頭的input標籤

input[id$='p']:id屬性已p結尾的input標籤

input[id*='p']:id屬性包含的input標籤

xpath和css對比:

總結selenium中的八種定位方法:

Web自動化測試相關知識點(僅限於補充)

1 上傳按鈕是input屬性 先定位該按鈕,再使用sendkeys 方法鍵入檔案的絕對路徑即可 2 上傳按鈕是flash型別 借助autoit工具進行檔案上傳 具體參考蟲師的部落格,我在執行程式時出現問題,一直沒解決。draganddrop source,target 是將source元素拖拽到ta...

自動化測試 web自動化測試

自動化 由機器裝置代替人為完成制定目標的過程 優點 提高工作效率 減少勞動力 產品規格同一標準 批量生產 自動化測試 讓程式代替人為去驗證程式功能的過程,即在預設條件下執行程式系統 流程確定 搭建自動化框架 編寫測試用例,將其轉化為soupui 介面 自動化測試指令碼 執行自動化測試指令碼 輸出執行...

web自動化測試

1.環境搭建 win10 64bit selenium2.53.6版本 安裝方法 pip install selenium 2.53.6 瀏覽器搭載三個 chrome 49版本 driver2.22 ie 11版本 driver2.5 firefox 44版本 在pycharm中關聯電腦本身安裝的工...