自動化測試之定位元素的多種方式

2021-08-16 06:45:13 字數 2298 閱讀 4466

1.xpath

2.css_selector

3.name

4.id

5.1通過f12中的console,輸入$('元素的位置')來確認優化元素css seletor的位置:

div  :class

="notice-box

" 定位格式 .notice-box

有些類中間只有空格,在console中找不到的可以使用.代替查詢試試

p標籤 :

p:nth-child(3) 沒有點

input(上傳檔案):

'.up-id-item:nth-child(1) [type="file"]')

5.2 通過f12中的console,輸入$x('元素的位置')來確認優化元素xpath的位置:

1、id  獲取id 的屬性值

2、starts-with 顧名思義,匹配乙個屬性開始位置的關鍵字  -- 模糊定位

3、contains 匹配乙個屬性值中包含的字串  -- 模糊定位

4、text()  函式文字定位

5、last()  函式位置定位

1、xpath使用方法

使用xpath有如下幾種方法定位元素(相比css選擇器,方法稍微多一點):

a、通過絕對路徑定位元素(不推薦!)

webelement ele = driver.findelement(by.xpath("html/body/div/form/input"));

b、通過相對路徑定位元素

webelement ele = driver.findelement(by.xpath("//input"));

c、使用索引定位元素

webelement ele = driver.findelement(by.xpath("//input[4]"));

d、使用xpath及屬性值定位元素

webelement ele = driver.findelement(by.xpath("//input[@id='****']"));

//其他方法(看字面意思應該能理解吧)

webelement ele = driver.findelement(by.xpath("//input[@type='submit'][@name='****']"));

webelement ele = driver.findelement(by.xpath("//input[@type='submit' and @name='****']"));

webelement ele = driver.findelement(by.xpath("//input[@type='submit' or @name='****']"));

e、使用xpath及屬性名稱定位元素

元素屬性型別:@id 、@name、@type、@class、@tittle

//查詢所有input標籤中含有type屬性的元素

webelement ele = driver.findelement(by.xpath("//input[@type]"));

f、部分屬性值匹配

webelement ele = driver.findelement(by.xpath("//input[start-with(@id,'****')]"));//

匹配id以****開頭的元素,id='****you'

webelement ele = driver.findelement(by.xpath("//input[ends-with(@id,'****')]"));//

匹配id以****結尾的元素,id='you****'

webelement ele = driver.findelement(by.xpath("//input[contains(@id,'****')]"));//

匹配id中含有****的元素,id='you****you'

g、使用任意值來匹配屬性及元素

webelement ele = driver.findelement(by.xpath("//input[@*='****']"));//

匹配所有input元素中含有屬性的值為****的元素

元素定位總結

6.在頁面往往有滾動的情況

.這個時候我們可以先讓頁面直接跳到元素出現的位置,然後就可以操作了。同樣需要借助js去實現。 

元素聚焦:

target = driver.find_element_by_***x()

driver.execute_script("arguments[0].scrollintoview();", target)

APP自動化測試定位元素位置

如下圖所示,使用uiautomator2 工具定位7的位置,只需要獲取此位置的resource id 資訊即可 class是乙個類屬性,一般重複性會很高,所以很少直接使用,這裡講class屬性是由於在xpath中會頻繁用到class屬性 text屬性是文字,如果是要定位到唯一的標題之類的可以直接使用...

APP自動化測試之常見API 1 多種元素定位方式

自動化測試之常見api 1.多種元素定位方式 driver.find element by id 通過id定位,對應resource id driver.find element by name 通過name定位,對應text driver.find element by tag name 通過ta...

WebDriver 定位元素的8種方式

在ui層面的自動化測試開發中,元素的定位與操作是基礎,也是經常遇到的困難所在。webdriver提供了8種定位 id定位 find element by id id值 id屬性是唯一的 1 driver.find element by id loginname clear 使用者名稱輸入框的id屬性...