<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Appium移動端自動化測試--元素操作與觸摸動作【移動端自動化測試教程奉上】

          共 3198字,需瀏覽 7分鐘

           ·

          2020-09-25 13:43

          之前陸續(xù)介紹了移動端測試的相關(guān)知識,今天介紹下元素定位之后的操作與觸摸動作,學(xué)習(xí)計劃因為各種原因,擱置了很久,接下來繼續(xù)之前的計劃,APP和API接口測試。


          Appium往期推文:

          1. Appium移動端自動化測試--基礎(chǔ)預(yù)熱

          2. Appium移動端自動化測試--搭建測試環(huán)境

          3. Appium移動端自動化測試--錄制測試用例并運(yùn)行

          4. Appium移動端自動化測試--使用IDE編輯并強(qiáng)化腳本

          5. Appium移動端自動化測試--控件定位方法

          6. Appium移動端自動化測試--元素操作與觸摸動作

          7. Appium移動端自動化測試--搭建模擬器和真機(jī)環(huán)境

          8. Appium移動端自動化測試--測試用例改造

          9. Appium移動端自動化測試--capability使用和常用設(shè)備交互命令

          常見自動化動作支持

          • click

          • sendKeys

          • swipe

          • touch action

          元素操作

          1.click()點擊操作
          也可以用tab實現(xiàn)點擊操作
          driver.find_element_by_id("com.wuba.zhuanzhuan:id/ae8").click()

          2.clear()清空輸入框內(nèi)容
          driver.find_element_by_id("com.wuba.zhuanzhuan:id/ij").clear()

          3.send(xx)輸入框內(nèi)輸入內(nèi)容
          driver.find_element_by_id("com.wuba.zhuanzhuan:id/ij").send_keys("test content")

          4.text 獲得元素的text內(nèi)容
          print(driver.find_element_by_xpath(" //android.widget.LinearLayout[1]//xxx").text)

          TouchAction觸摸操作

          Tap
          在支持觸摸的設(shè)備上單擊/點擊

          Double Tap
          在觸摸屏上雙擊

          Move To
          手指在屏幕上移動/拖動

          Long Tap
          在觸摸屏上長按進(jìn)行操作

          Scroll
          觸摸屏上滾動

          Multi Touch Perform
          鏈?zhǔn)讲僮鳎ǘ鄠€操作連接起來)

           1Java
          2TouchActions?action?=?new?TouchActions(driver);
          3action.singleTap(element);//點擊操作
          4action.doubleTap(element);//雙擊操作
          5action.down(10,?10);//按住
          6action.moveTo(50,?50);//移動
          7action.longPress(element);//長按
          8action.scroll(element,?10,?100);//滾動
          9
          10//多個操作
          11TouchActions?actionOne?=?new?TouchAction();
          12actionOne.press(10,?10).moveTo(10,?100).release();
          13TouchActions?actionTwo?=?new?TouchAction();
          14actionTwo.press(20,?20).moveTo(20,?200).release();
          15MultiTouchAction?action?=?new?MultiTouchAction();
          16action.add(actionOne).add(actionTwo);
          17
          18action.perform();//調(diào)起操作/執(zhí)行
           1Python
          2from?appium.webdriver.common.touch_action?import?TouchAction
          3#?...
          4actions?=?TouchAction(driver)
          5actions.tap(element)?#點擊操作
          6actions.double_tap(element);#雙擊操作
          7actions.tap_and_hold(element)#按住
          8actions.move_to(element,?50,?50)#移動
          9actions.long_press(element)#長按
          10actions.scroll_from_element(element,?10,?100)
          11actions.scroll(10,?100)#滾動
          12actions.perform()
          13
          14#多個操作
          15a1?=?TouchAction()
          16a1.press(10,?20).move_to(10,?200).release()
          17a2?=?TouchAction()
          18a2.press(10,?10).move_to(10,?100).release()
          19ma?=?MultiAction(self.driver)
          20ma.add(a1,?a2)
          21ma.perform()#調(diào)起操作

          TouchAction是一個鏈?zhǔn)紸PI操作,可以將一連串的單個操作連接起來形成一個鏈?zhǔn)降牟僮鳌?br style="box-sizing: border-box;font-size: inherit;color: inherit;line-height: inherit;">TouchAction(driver).long_press().move_to().release().perform()

          處理滑動API--swipe

          在這里插入圖片描述


          swipe是對TouchAction的一個封裝,底層源代碼還是使用了TouchAction
          swipe(self, start_x, start_y, end_x, end_y, duration=None):


          int start x-開始滑動的x坐標(biāo);
          int start y?-開始滑動的y坐標(biāo) ;
          int end x?-結(jié)束點x坐標(biāo);
          int end y?-結(jié)束點y坐標(biāo);
          duration?滑動時間(默認(rèn)5毫秒)
          屏幕左上角為起點,坐標(biāo)為(0,0),起點往右為Y軸,起點以下為X軸

          其實就是需要輸入一個滑動起始點和結(jié)束點對應(yīng)的X Y坐標(biāo),進(jìn)行滑動操作,而在實際工作中一般輸入的是相對坐標(biāo),根據(jù)整個屏幕的比例計算得到的坐標(biāo),不建議直接輸入固定的(絕對)坐標(biāo)值,每款尺寸類型的手機(jī)不一樣。

          如下的Java代碼,獲取到屏幕的高和寬,再根據(jù)高和寬來確定滑動的起始位置和結(jié)束位置。

          1????int?width?=?driver.manage().window().getSize().width;??
          2????int?height?=?driver.manage().window().getSize().height;??
          3????driver.swipe(width?/?2,?height?*?3?/?4,?width?/?2,?height?/?4,?duri);??

          參數(shù)介紹:
          driver(就是把a(bǔ)ppiumdriver對象傳進(jìn)來)
          during(這里是填寫毫秒數(shù),這里的 毫秒數(shù)越小 滑動的速度越快~ 一般設(shè)定在500~1000,如果你想快速滑動 那就可以設(shè)置的更加小)
          num(是只滑動的次數(shù),如相冊多張圖片翻頁測試什么的滑動或者滑動到列表底部。就直接輸入次數(shù)就行了)

          上滑 swipeToUp

          1public?static?void?swipeToUp(AppiumDriver?driver,int?during,?int?num)?{??
          2????int?width?=?driver.manage().window().getSize().width;??
          3????int?height?=?driver.manage().window().getSize().height;??
          4????for?(int?i?=?0;?i?5????????driver.swipe(width?/?2,?height?*?3?/?4,?width?/?2,?height?/?4,?duri??
          6????}??
          7}??

          swipeToDown下拉

          1public?static?void?swipeToDown(AppiumDriver?driver,int?during,?int?num)?{??
          2????int?width?=?driver.manage().window().getSize().width;??
          3????int?height?=?driver.manage().window().getSize().height;??
          4????System.out.println(width);??
          5????System.out.println(height);??
          6????for?(int?i?=?0;?i?7????????driver.swipe(width?/?2,?height?/?4,?width?/?2,?height?*?3?/?4,?during);??
          8????}??
          9}??

          swipeToLeft向左滑動

          1public?static?void?swipeToLeft(AppiumDriver?driver,int?during,?int?num)?{??
          2????int?width?=?driver.manage().window().getSize().width;??
          3????int?height?=?driver.manage().window().getSize().height;??
          4????for?(int?i?=?0;?i?5????????driver.swipe(width?*?3?/?4,?height?/?2,?width?/?4,?height?/?2,?during);???
          6????}??
          7}?

          swipeToRight向右滑動

          1public?static?void?swipeToRight(AppiumDriver?driver,int?during,?int?num)?{??
          2????int?width?=?driver.manage().window().getSize().width;??
          3????int?height?=?driver.manage().window().getSize().height;??
          4????for?(int?i?=?0;?i?5????????driver.swipe(width?/?4,?height?/?2,?width?*?3?/?4,?height?/?2,?during);????
          6????}??
          7}??


          Appium往期推文:

          1. Appium移動端自動化測試--基礎(chǔ)預(yù)熱

          2. Appium移動端自動化測試--搭建測試環(huán)境

          3. Appium移動端自動化測試--錄制測試用例并運(yùn)行

          4. Appium移動端自動化測試--使用IDE編輯并強(qiáng)化腳本

          5. Appium移動端自動化測試--控件定位方法

          6. Appium移動端自動化測試--元素操作與觸摸動作

          7. Appium移動端自動化測試--搭建模擬器和真機(jī)環(huán)境

          8. Appium移動端自動化測試--測試用例改造

          9. Appium移動端自動化測試--capability使用和常用設(shè)備交互命令

          送書活動:

          言+分享贈書
          免費(fèi)贈送技術(shù)類圖書,無套路,純免費(fèi)!

          北大出版社《Python自動化測試實戰(zhàn)》

          (活動碼004)
          點擊下方小程序查看圖書內(nèi)容詳情


          文章合集

          Selenium?|?Appium??|?Jenkins??|??Jmeter?

          軟件測試方法匯總?|?Postman接口參數(shù)化?|?測試用例設(shè)計?|?安卓APP抓包

          視頻教程

          Selenium?|?Appium?|?Jenkins?|?Jmeter


          微信群:
          軟件自動化測試交流群
          已創(chuàng)建,公號回復(fù)入群即可獲取入群二維碼。

          瀏覽 71
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  青青草超碰在线 | 久久秘 一区二区三区四区 | 韩国日本三级片在线观看 | 91成人片 | XXAV在线观看视频 |