国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Appium+python自動(dòng)化(十一)- 元素定位- 下卷超詳解)

這篇具有很好參考價(jià)值的文章主要介紹了Appium+python自動(dòng)化(十一)- 元素定位- 下卷超詳解)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1、 List定位

  List故名思義就是一個(gè)列表,在python里面也有l(wèi)ist這一個(gè)說法,如果你不是很理解什么是list,這里暫且理解為一個(gè)數(shù)組或者說一個(gè)集合。首先一個(gè)list是一個(gè)集合,那么他的個(gè)數(shù)也就成了不確定性,所以這里需要用復(fù)數(shù),所以在我們定位時(shí)我們不能夠接著用find_element_by_id等等定位方式了,我們需要用他的復(fù)數(shù)形式find_elements_by_id,所有的定位方式都一樣需要采用復(fù)數(shù)加s。這里我們接著上篇的案例講,如何使用list定位想定位的元素。首先看一下圖片:

Appium+python自動(dòng)化(十一)- 元素定位- 下卷超詳解),自動(dòng)化測試,技術(shù)分享,軟件測試,appium,python,自動(dòng)化,軟件測試,程序人生

我們查看圖片可以知道我們能夠很輕松的通過id定位到整個(gè)祖父節(jié)點(diǎn),我們接下來需要做的事定位這個(gè)祖父節(jié)點(diǎn)下所有的“android.widget.RelativeLayout”父節(jié)點(diǎn),同樣的首先我們看一張圖:

Appium+python自動(dòng)化(十一)- 元素定位- 下卷超詳解),自動(dòng)化測試,技術(shù)分享,軟件測試,appium,python,自動(dòng)化,軟件測試,程序人生

這里我們需要直接使用定位復(fù)數(shù)的方法來操作,直接看代碼(祖父節(jié)點(diǎn)定位到父節(jié)點(diǎn)):

element= driver.find_element_by_id("com.taobao.taobao:id/rv_main_container")
elements = element.find_elements_by_class_name("android.widget.FrameLayout")

通過上面的代碼我們直接定位了com.taobao.taobao:id/rv_main_container父節(jié)點(diǎn)下的所有android.widget.FrameLayout子節(jié)點(diǎn),但是由于這個(gè)android.widget.FrameLayout子節(jié)點(diǎn)下邊還有許多相同的android.widget.LinearLayout孫節(jié)點(diǎn)。

Appium+python自動(dòng)化(十一)- 元素定位- 下卷超詳解),自動(dòng)化測試,技術(shù)分享,軟件測試,appium,python,自動(dòng)化,軟件測試,程序人生

這里我們需要直接使用定位復(fù)數(shù)的方法來操作,直接看代碼(父節(jié)點(diǎn)定位到孫節(jié)點(diǎn)):

1 elements = element.find_elements_by_class_name("android.widget.FrameLayout")
2 elements1 = elements[1].find_elements_by_class_name("android.widget.LinearLayout")

現(xiàn)在我們需要怎么去操作這個(gè)子節(jié)點(diǎn)了,這里有兩種方法:

1、前面我們講了List你可以理解為一個(gè)數(shù)組或者一個(gè)集合,這里定位的所有子節(jié)點(diǎn)最后就成了個(gè)list,如果我們要訪問這個(gè)list里面的某一個(gè)元素我們可以像訪問數(shù)組中的數(shù)據(jù)一樣通過下標(biāo)訪問。最后的代碼就是下面這個(gè)樣子:

1 element= driver.find_element_by_id("com.taobao.taobao:id/rv_main_container")
2 elements = element.find_elements_by_class_name("android.widget.FrameLayout")
3 elements1 = elements[1].find_elements_by_class_name("android.widget.LinearLayout")
4 elements1[1].click()

上面的代碼最后的結(jié)果是選擇了“聚劃算”這個(gè)標(biāo)簽頁面,然后點(diǎn)擊進(jìn)入。

備注:如果初學(xué)者不理解是如何通過下標(biāo)訪問的,這里說一下下標(biāo)是從0開始,如果要訪問list i中的第一個(gè)元素結(jié)果就是i[0],這部分知識(shí)可以看一下python基礎(chǔ)。

2、如果你要訪問List里面的元素,那么我們是否可以通過for循環(huán)語句來依次訪問呢?這個(gè)在自動(dòng)化中會(huì)經(jīng)常用到。下面你可以通過這個(gè)思路自己去實(shí)戰(zhàn)一下,看能否達(dá)到預(yù)期效果。下面看我的代碼:

1 element= driver.find_element_by_id("com.taobao.taobao:id/rv_main_container")
2 elements = element.find_elements_by_class_name("android.widget.FrameLayout")
3 elements1 = elements[1].find_elements_by_class_name("android.widget.LinearLayout")
4 for ele in elements1:
5     ele.click()

看上面的代碼,我們通過循環(huán)去訪問這個(gè)list里面的每一個(gè)元素,因?yàn)槊看窝h(huán)得到的都是其中一個(gè)元素,那么我們只需要在這個(gè)元素上加上你想要的操作即可,所以我們這里可以直接點(diǎn)擊進(jìn)去。

如果你動(dòng)手做到這里會(huì)發(fā)現(xiàn)一個(gè)問題,你進(jìn)入到第一個(gè)標(biāo)簽后沒一會(huì)兒系統(tǒng)就會(huì)報(bào)錯(cuò),為什么呢?你也可以試著去解決這個(gè)問題,后面我們會(huì)講解這塊兒知識(shí)。

2、 內(nèi)嵌H5定位

2.1 hybrid定位思考

在web自動(dòng)化中我們會(huì)遇見frame的問題,在遇見這些內(nèi)嵌的標(biāo)簽后我們需要做的就是切換窗口,那么在app自動(dòng)化測試也有類似的情況就是我們經(jīng)??匆姷膬?nèi)嵌html,在我們原生的app中增加一個(gè)由html做成的頁面。大家可以思考一下這種情況怎么操作。

2.2 hybrid常見定位問題分析

首先我們看一下下面一張圖片:

Appium+python自動(dòng)化(十一)- 元素定位- 下卷超詳解),自動(dòng)化測試,技術(shù)分享,軟件測試,appium,python,自動(dòng)化,軟件測試,程序人生Appium+python自動(dòng)化(十一)- 元素定位- 下卷超詳解),自動(dòng)化測試,技術(shù)分享,軟件測試,appium,python,自動(dòng)化,軟件測試,程序人生

通過右邊的結(jié)構(gòu)圖我們能夠清晰的看見整個(gè)頁面就是一個(gè)webview,無論從什么角度來定位我們都不能夠很好的進(jìn)行,如果這個(gè)時(shí)候我們需要操作頁面的元素就需要通過切換contexts來完成。但是在講這個(gè)知識(shí)點(diǎn)之前大家先按照網(wǎng)上的知識(shí)來試一下處理這個(gè)頁面,看能否成功。下面先說大家會(huì)遇見的問題:

1、可能你看到有的文章顯示我們不需要通過切換contexts就能夠完成定位,這樣的情況有,但是那種情況作者只在微博登錄、qq登錄等第三方登錄時(shí)遇見過,如果不是這樣的情況而像上面的情況就沒辦法通過類似的方法進(jìn)行完成,所以我希望讀者遇見這種情況時(shí)自己動(dòng)手去操作,看什么方式更加適合自己的項(xiàng)目。

2、需要切換contexts那么就需要獲取頁面的所有contexts,此時(shí)你通過官網(wǎng)或者其他文章的知識(shí)通過下面的方法來獲取,可能會(huì)報(bào)錯(cuò),這種情況關(guān)系不大。

1 webview = self.driver.contexts
2 print webview

如果你通過上面的代碼來調(diào)試但是卻報(bào)錯(cuò),但是其他資料卻沒問題時(shí)你也不要著急,這里你需要確定兩件事情:(1)、app打包的時(shí)候需要開啟webview 的debug屬性setWebContentDebuggingEnabled(true),這個(gè)直接讓開發(fā)加上就好。一般情況是開啟的,畢竟他們也要調(diào)試。(2)、你用很多手機(jī)去調(diào)試,發(fā)現(xiàn)有一些可以有一些不可以,但是你用模擬器卻都可以,根據(jù)官方給出的答案是這個(gè)時(shí)候你需要去將手機(jī)root,然后再試。目前作者遇見了這兩種情況,第二種我也是調(diào)試了很久才找到原因。

2.3 hybrid定位講解

這兩個(gè)問題解決后那么定位webview就輕松搞定,直接看代碼:

1 webview = driver.contexts
2 driver.switch_to.context(webview[1])
3 driver.find_element_by_link_text('PHP').click()

對(duì)于初學(xué)者對(duì)于上面的代碼可能不是很理解,下面我們看一下日志:

Appium+python自動(dòng)化(十一)- 元素定位- 下卷超詳解),自動(dòng)化測試,技術(shù)分享,軟件測試,appium,python,自動(dòng)化,軟件測試,程序人生Appium+python自動(dòng)化(十一)- 元素定位- 下卷超詳解),自動(dòng)化測試,技術(shù)分享,軟件測試,appium,python,自動(dòng)化,軟件測試,程序人生

大家這里不用管我執(zhí)行代碼和之前的區(qū)別(多了一個(gè)self),我們看下面控制臺(tái)的輸出,輸出的是一個(gè)list,前面說過list和數(shù)組類似,在這個(gè)list里面有兩個(gè)元素“NATIVE_APP”,“WEBVIEW_cn_com_open_mooc”,第一個(gè)元素是我們原生的app的contexts,后面的則是我們的webview的context,所以我們需要獲取webview的context時(shí)只需要通過這個(gè)list的下表來進(jìn)行訪問。

我們獲取到webview的context后只需要通過driver.switch_to.context()進(jìn)行切換就好。當(dāng)切換后我們就可以像定位web一樣進(jìn)行定位。

看下面一張圖片我們通過瀏覽器將h5頁面打開:

Appium+python自動(dòng)化(十一)- 元素定位- 下卷超詳解),自動(dòng)化測試,技術(shù)分享,軟件測試,appium,python,自動(dòng)化,軟件測試,程序人生Appium+python自動(dòng)化(十一)- 元素定位- 下卷超詳解),自動(dòng)化測試,技術(shù)分享,軟件測試,appium,python,自動(dòng)化,軟件測試,程序人生

通過上面的圖片我們就能夠很輕松的像web一樣進(jìn)行定位,也就可以使用web的一些定位方式??吹竭@里是不是覺得解決了一個(gè)難題呢?動(dòng)手去吧。

2.4 hybrid問題實(shí)戰(zhàn)

通過前面的學(xué)習(xí)我相信你已經(jīng)有了一些實(shí)戰(zhàn)能力,這里給大家提一個(gè)問題,我們獲取到的contexts每次一定是兩個(gè)嗎?如果不是兩個(gè)那么我們上面的腳本是不是就沒辦法用了呢?可以思考一下這里怎么解決,在看我們下面的思路以及解決方案。

無論在什么頁面我們?nèi)カ@取contexts時(shí)他無論有幾個(gè)但是他的類型是不是肯定都是一個(gè)list呢?既然是list那么我們是否可以取到里面的每一個(gè)值,然后把每一個(gè)值進(jìn)行判斷,只要找出我們的webview就可以了呢?下面看代碼:

1 #獲取當(dāng)前頁面所有的contexts
2 webview = driver.contexts
3 #在獲取到的contexts list里面去挨個(gè)循環(huán)
4 for context in webview:
5   #判斷循環(huán)中單個(gè)的context是否是webview,如果是就進(jìn)行切換,并且跳出循環(huán)
6   if 'WEBVIEW' in context:
7     driver.switch_to.context(context)
8     break
9 driver.find_element_by_link_text('PHP').click()

通過上面的代碼我們是否完美的解決了內(nèi)嵌H5的定位問題呢?動(dòng)手吧

3、 滑動(dòng)定位

3.1 滑動(dòng)定位方式

在app自動(dòng)化中我們經(jīng)常會(huì)遇見一個(gè)問題,我們需要查找的元素不在當(dāng)前可展示的屏幕,至于在什么地方我們不知道,如果這個(gè)時(shí)候我們一直使用在當(dāng)前頁面查找,那么系統(tǒng)就會(huì)報(bào)錯(cuò),為了解決這個(gè)問題我們就需要使用滑動(dòng)查找。

首先的思路是我們在需要查找對(duì)象的頁面查找一下該元素,判斷該元素是否在當(dāng)前頁面,如果該元素不在該頁面那么我們就需要去互動(dòng)屏幕,到我們的下一屏幕,然后再進(jìn)行查找,依次類推到找到為止。

3.2 滑動(dòng)定位思路分析

方式我們有了,那么我們就需要知道實(shí)現(xiàn)這個(gè)功能應(yīng)該有哪些點(diǎn)。下面跟著我一起來分析一下:

1、需要查找的元素我們是不是需要知道是什么呢?這個(gè)需要先確定

2、我們需要找的頁面是在我們的當(dāng)前頁面的上方還是下方還是左方還是右方,我們不能確定,那么我們是否需要確定我們需要滑動(dòng)的方向?

3、元素和方向有了,但是你知道我們每次需要滑動(dòng)屏幕的多少嗎?那么我們是否需要先去獲取屏幕的大小,然后針對(duì)不同的方向去計(jì)算一個(gè)滑動(dòng)的值呢?

萬事具備只欠東風(fēng),去按照這個(gè)思路動(dòng)手練習(xí)一吧。

3.3 滑動(dòng)定位實(shí)戰(zhàn)

一、根據(jù)上面的思路我們能首先來確定我們需要查找的元素,看下面圖片:

Appium+python自動(dòng)化(十一)- 元素定位- 下卷超詳解),自動(dòng)化測試,技術(shù)分享,軟件測試,appium,python,自動(dòng)化,軟件測試,程序人生Appium+python自動(dòng)化(十一)- 元素定位- 下卷超詳解),自動(dòng)化測試,技術(shù)分享,軟件測試,appium,python,自動(dòng)化,軟件測試,程序人生

我們要找實(shí)戰(zhàn)推薦后面的“換一換”按鈕,然后進(jìn)行點(diǎn)擊。首先我們查看他的定位信息

Appium+python自動(dòng)化(十一)- 元素定位- 下卷超詳解),自動(dòng)化測試,技術(shù)分享,軟件測試,appium,python,自動(dòng)化,軟件測試,程序人生Appium+python自動(dòng)化(十一)- 元素定位- 下卷超詳解),自動(dòng)化測試,技術(shù)分享,軟件測試,appium,python,自動(dòng)化,軟件測試,程序人生

最后我們查找元素的定位信息代碼如下:

1 self.driver.find_element_by_id('cn.com.open.mooc:id/tv_replace').click()

  對(duì)于有一定基礎(chǔ)的人可能會(huì)覺得這個(gè)很low,但是有沒有思考過一個(gè)問題,我們可以通過這個(gè)代碼去執(zhí)行,在沒有這按鈕的時(shí)候卻會(huì)報(bào)錯(cuò),也就沒有辦法執(zhí)行下去了,那么需要怎么處理呢?所以這個(gè)時(shí)候我們需要有一些python的容錯(cuò)知識(shí),即使我們的代碼執(zhí)行出錯(cuò)了,那么也要讓他按照我們的意思執(zhí)行下去。try.......except.......,這個(gè)就是我們python中的容錯(cuò)處理 ,下面我們看添加后的代碼:

1 try:
2 self.driver.find_element_by_id('cn.com.open.mooc:id/tv_replace').click()
3 except Exception,e:
4 print e

try的意思就是告訴編譯器試著去執(zhí)行他下面這一段代碼,如果報(bào)錯(cuò)了,那么你就把except里面的錯(cuò)誤信息打印出來。

二、有了元素現(xiàn)在我們需要知道的是不是就是該怎么滑動(dòng)界面了呢?首先我們看一下下面這張圖片:

Appium+python自動(dòng)化(十一)- 元素定位- 下卷超詳解),自動(dòng)化測試,技術(shù)分享,軟件測試,appium,python,自動(dòng)化,軟件測試,程序人生Appium+python自動(dòng)化(十一)- 元素定位- 下卷超詳解),自動(dòng)化測試,技術(shù)分享,軟件測試,appium,python,自動(dòng)化,軟件測試,程序人生

在我們使用app的過程中存在上面幾種滑動(dòng)情況,我們把整個(gè)界面看作為一個(gè)坐標(biāo)系(x,y),如果我們需要往上滑動(dòng),那么我們是不是就是x軸不動(dòng),y軸從下往上動(dòng)呢?往下就是x軸不動(dòng),y軸從上往下呢?同理左右滑動(dòng)是不是就是應(yīng)該y軸不動(dòng)x軸左右滑動(dòng)呢?可以好好去體會(huì)一下,腦海中有個(gè)畫面。

在appium中滑動(dòng)我們所需要使用的方法就是swipe函數(shù),至于往哪個(gè)方向滑動(dòng)就是看我們里面的x,y的值,如果我們需要下往上滑動(dòng)那么我們就應(yīng)該是:

1 self.driver.swipe(x1,y1,x1,y2,t)

上面的代碼x軸的值不變,y軸的值進(jìn)行了變化,所以是沿著上下進(jìn)行滑動(dòng)的,從y2滑動(dòng)到了y1點(diǎn)。t代表的是多少時(shí)間完成這個(gè)動(dòng)作,或者說這個(gè)時(shí)間持續(xù)多久。

備注:這里需要注意的是屏幕的x,y的值是從左上角開始取的,左上角為(0,0),右下角是最大。

三、上面滑動(dòng)的方法看著是好用,但是我們不可能每次都去填寫一個(gè)坐標(biāo),那樣太low,所以我們需要獲取屏幕大小,直接看代碼:

1 x = self.driver.get_window_size()['width']
2 y = self.driver.get_window_size()['height']

  上面的代碼就是我們獲取到的x,y軸。通過思路我們的代碼都有了,下面我們要做的就是對(duì)原來的代碼進(jìn)行修改,進(jìn)行一個(gè)封裝。下面看代碼,這個(gè)暫時(shí)看不懂沒關(guān)系,到后面我們學(xué)了python'基礎(chǔ)就能夠看懂了。先思路,然后了解。

 1 #獲取屏幕大小
 2          
 3 def getSize(self):
 4   x = self.driver.get_window_size()['width']
 5   y = self.driver.get_window_size()['height']
 6   return (x,y)
 7          
 8          
 9 #向左滑動(dòng)
10 def swipeLeft(self,t):
11   l=self.getSize()
12   x1=int(l[0]*0.9)
13   y1=int(l[1]*0.5)
14   x2=int(l[0]*0.1)
15   self.driver.swipe(x1,y1,x2,y1,t)
16                
17 #向右滑動(dòng)
18 def swipeRight(self,t):
19   l=self.getSize()
20   x1=int(l[0]*0.25)
21   y1=int(l[1]*0.5)
22   x2=int(l[0]*0.75)
23   self.driver.swipe(x1,y1,x2,y1,t)
24                
25 #向上滑動(dòng)
26 def swipeUp(self,t):
27   l=self.getSize()
28   x1=int(l[0]*0.5)
29   y1=int(l[1]*0.8)
30   y2=int(l[1]*0.4)
31   self.driver.swipe(x1,y1,x1,y2,t)
32   time.sleep(5)
33          
34 #向下滑動(dòng)
35 def swipeDown(self,t):
36   l=self.getSize()
37   x1=int(l[0]*0.5)
38   y1=int(l[1]*0.25)
39   y2=int(l[1]*0.75)
40   self.driver.swipe(x1,y1,x1,y2,t)
41          
42 #查找元素,沒找到滑動(dòng)
43 def findLocal(self):
44   x = 1
45   while x==1:
46     if self.fact() == 1:
47       self.swipeUp(2000)
48       time.sleep(3)
49       self.fact()
50     else:
51       print "找到了"
52       x=2
53              
54          
55          
56 #遞歸
57 def fact(self):
58   n =1
59   try:
60     self.driver.find_element_by_id('cn.com.open.mooc:id/tv_replace').click()
61   except Exception,e:
62     return n

  通過查看上面代碼的整個(gè)邏輯就是1、首先去查找元素,如果找到了我就直接點(diǎn)擊。2、如果沒有找到元素那么我就往上滑動(dòng)(這里可以自己選擇),滑動(dòng)后再次進(jìn)行查找,如果找到就點(diǎn)擊,沒有找到繼續(xù)滑動(dòng)。動(dòng)手動(dòng)手,這里知識(shí)點(diǎn)很重要!雖然后面會(huì)有一些替代方法,但是思路、算法很重要。

4、小結(jié)

? ?好了,元素定位,常見的大致就這些,這個(gè)目前就分享到這里吧,以后如果遇到,給小伙伴再補(bǔ)上?。?!


????????????? 【下面是我整理的2023年最全的軟件測試工程師學(xué)習(xí)知識(shí)架構(gòu)體系圖】


一、Python編程入門到精通

二、接口自動(dòng)化項(xiàng)目實(shí)戰(zhàn)

Appium+python自動(dòng)化(十一)- 元素定位- 下卷超詳解),自動(dòng)化測試,技術(shù)分享,軟件測試,appium,python,自動(dòng)化,軟件測試,程序人生

三、Web自動(dòng)化項(xiàng)目實(shí)戰(zhàn)

四、App自動(dòng)化項(xiàng)目實(shí)戰(zhàn)

Appium+python自動(dòng)化(十一)- 元素定位- 下卷超詳解),自動(dòng)化測試,技術(shù)分享,軟件測試,appium,python,自動(dòng)化,軟件測試,程序人生

五、一線大廠簡歷

六、測試開發(fā)DevOps體系

Appium+python自動(dòng)化(十一)- 元素定位- 下卷超詳解),自動(dòng)化測試,技術(shù)分享,軟件測試,appium,python,自動(dòng)化,軟件測試,程序人生

七、常用自動(dòng)化測試工具

八、JMeter性能測試

Appium+python自動(dòng)化(十一)- 元素定位- 下卷超詳解),自動(dòng)化測試,技術(shù)分享,軟件測試,appium,python,自動(dòng)化,軟件測試,程序人生

九、總結(jié)(尾部小驚喜)

生命不息,奮斗不止。每一份努力都不會(huì)被辜負(fù),只要堅(jiān)持不懈,終究會(huì)有回報(bào)。珍惜時(shí)間,追求夢想。不忘初心,砥礪前行。你的未來,由你掌握!

生命短暫,時(shí)間寶貴,我們無法預(yù)知未來會(huì)發(fā)生什么,但我們可以掌握當(dāng)下。珍惜每一天,努力奮斗,讓自己變得更加強(qiáng)大和優(yōu)秀。堅(jiān)定信念,執(zhí)著追求,成功終將屬于你!

只有不斷地挑戰(zhàn)自己,才能不斷地超越自己。堅(jiān)持追求夢想,勇敢前行,你就會(huì)發(fā)現(xiàn)奮斗的過程是如此美好而值得。相信自己,你一定可以做到!文章來源地址http://www.zghlxwxcb.cn/news/detail-583509.html

到了這里,關(guān)于Appium+python自動(dòng)化(十一)- 元素定位- 下卷超詳解)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • python ui自動(dòng)化測試元素定位常用語法

    第一部分是css樣式定位方法 選擇器 示例 示例說明 CSS . class .intro 選擇所有class=\\\"intro\\\"的元素 1 # id #firstname 選擇所有id=\\\"firstname\\\"的元素 1 * * 選擇所有元素 2 element p 選擇所有p元素 1 element,element div,p 選擇所有div元素和p元素 1 element ? element div p 選擇div元素內(nèi)的所有p元素 1 element

    2024年02月13日
    瀏覽(33)
  • 【web自動(dòng)化】selenium+python八大元素定位

    【web自動(dòng)化】selenium+python八大元素定位

    推薦:b站軟件測試?yán)习?注意點(diǎn) 1.有id才能能使用id定位 2.id不能重復(fù) 通過百度頁面,演示如何查找id確定id是否重復(fù),其他方式定位也可以這樣搜索 代碼如下(示例): 如果有多個(gè)class_name,可以使用 find_elements 和取下標(biāo)的方式 例如:打開嗶哩嗶哩頁面,有番劇,電影等等,他

    2024年01月21日
    瀏覽(27)
  • Python+selenium自動(dòng)化八大元素定位方法及實(shí)例(超詳細(xì))

    Python+selenium自動(dòng)化八大元素定位方法及實(shí)例(超詳細(xì))

    目錄 一、selenium模塊中的find_element_by_id方法無法使用 二、Python+selenium自動(dòng)化八大元素定位方法 使用場景: 1、通過id屬性定位:driver.find_element(By.ID,\\\"value\\\") 2、通過name屬性定位:driver.find_element(By.NAME,\\\"value\\\") 3、通過class屬性定位:driver.find_element(By.CLASS_NAME,\\\"value\\\") 4、通過tag_name屬

    2024年02月19日
    瀏覽(26)
  • python+selenium的web自動(dòng)化測試之8種元素定位方式詳解

    python+selenium的web自動(dòng)化測試之8種元素定位方式詳解

    目錄 前言 單一屬性定位 通過元素的id 通過元素的name 通過元素的class 通過元素的標(biāo)簽名 通過元素的超鏈接文本 通過元素的部分超鏈接文本 XPTH定位 CSS定位 輔助定位工具 ? 我們在做WEB自動(dòng)化時(shí),最根本的就是操作頁面上的各種元素,而操作的基礎(chǔ)便是元素的定位,只有準(zhǔn)確

    2023年04月16日
    瀏覽(100)
  • 自動(dòng)化測試之八大元素定位方式(python3.10+selenium4)

    自動(dòng)化測試之八大元素定位方式(python3.10+selenium4)

    元素的定位是自動(dòng)化測試核心。要操作一個(gè)對(duì)象,首先要識(shí)別定位或找到這個(gè)對(duì)象。為了實(shí)現(xiàn)網(wǎng)頁整體布局,我們先要知道,一個(gè)元素,是如何定位到頁面上的某個(gè)位置的,這就是元素定位。 系統(tǒng)環(huán)境 Windows 11 ?? python3.10.5 ?? selenium 4.8.0 ?? 注意:以下每種定位方式均有一

    2024年02月03日
    瀏覽(86)
  • app自動(dòng)化測試之Appium問題分析及定位

    app自動(dòng)化測試之Appium問題分析及定位

    使用 Appium 進(jìn)行測試時(shí),會(huì)產(chǎn)生大量日志,一旦運(yùn)行過程中遇到報(bào)錯(cuò),可以通過 Appium 服務(wù)端的日志以及客戶端的日志分析排查問題。 Appium Server日志-開啟服務(wù) 通過命令行的方式啟動(dòng) Appium Server,下面來分析一下啟動(dòng)日志,日志第一行顯示了 Appium 版本信息和服務(wù)在本地的運(yùn)行

    2024年02月14日
    瀏覽(28)
  • Appium自動(dòng)化(7):手機(jī)H5網(wǎng)頁元素識(shí)別及操作

    Appium自動(dòng)化(7):手機(jī)H5網(wǎng)頁元素識(shí)別及操作

    H5網(wǎng)頁是指第5代HTML,也指用H5語言制作的一切數(shù)字產(chǎn)品。HTML5的設(shè)計(jì)目的是為了在移動(dòng)設(shè)備上支持多媒體。目前很多網(wǎng)站都做了自適應(yīng),通過不同端打開呈現(xiàn)不同的網(wǎng)頁效果。appium支持在手機(jī)端對(duì)web網(wǎng)頁進(jìn)行UI自動(dòng)化操作。 appium對(duì)手機(jī)端H5網(wǎng)頁進(jìn)行自動(dòng)化操作步驟如下: 模擬

    2024年01月19日
    瀏覽(45)
  • IOS自動(dòng)化測試元素定位

    IOS自動(dòng)化測試元素定位

    一、元素屬性介紹 ? 1、元素屬性 ? 2、查看各定位方式執(zhí)行效率 二、iOS常用定位方法 ? 1、accessibility_id ? 2、class_name ? 3、Xpath ? 4、ios_class_chain(類型鏈) ? 5、ios_predicate(謂詞) 一個(gè)頁面最基本組成單元是元素,想要定位一個(gè)元素,我們需要特定的信息來說明這個(gè)元素的唯一特

    2024年01月18日
    瀏覽(74)
  • selenium自動(dòng)化元素定位之下拉列表框

    selenium自動(dòng)化元素定位之下拉列表框

    目錄 一、查看被測應(yīng)用元素信息 二、Select的下拉框怎么定位 其思路也是獲取下拉的選項(xiàng)框,循環(huán)遍歷尋找匹配的index,找到便設(shè)置成選中屬性 三、非select的下拉框如何定位? ?在編寫webUI自動(dòng)化過程中,有些元素的定位,不能直接通過id、name等快速定位到。這些特殊的元素

    2024年02月11日
    瀏覽(27)
  • 【Selenium】UI自動(dòng)化|元素定位常見問題

    【Selenium】UI自動(dòng)化|元素定位常見問題

    分析的可能原因: 頁面還沒有加載出來,就對(duì)頁面上的元素進(jìn)行的操作 元素在iframe中,先要理解下frame的實(shí)質(zhì),frame中實(shí)際上是嵌入了另一個(gè)頁面,而webdriver每次只能在一個(gè)頁面識(shí)別,因此需要先定位到相應(yīng)的frame,對(duì)那個(gè)頁面里的元素進(jìn)行定位。 元素在新的窗口中,未切換句

    2024年04月10日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包