Python&Appium實現滑動引導頁進入APP


最近在研究安卓APP的自動化測試。首先遇到的問題是,當一個session建立的時候,最先進入的是歡迎頁和引導頁,引導頁有三張,最后一張上顯示“enter”按鈕,點擊才能進入主界面。

歡迎頁加引導頁,這兩個頁面是每次進入APP都無法避免的,如何通過代碼執行跳過它們進入主界面的操作呢?

1、建立session

 def test_enterApp(self):
        desired_caps = {}
        desired_caps['platformName'] = 'Android'
        desired_caps['platformVersion'] = '4.4.4'
        desired_caps['app'] = '/Users/a140/Downloads/app.apk'
        desired_caps['deviceName'] = '03083025d0250909'
        self.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
        self.driver.implicitly_wait(5)

2、運用代碼模擬手指從右向左滑動的操作

#獲取屏幕寬度和高度
    def getSize(self):
        x = self.driver.get_window_size()['width']
        y = self.driver.get_window_size()['height']
        return (x, y)
#向左滑動
    def swipeLeft(self):
        l = self.getSize()
        x1 = int(l[0] * 0.9)
        y1 = int(l[1] * 0.5)
        x2 = int(l[0] * 0.1)
        self.driver.swipe(x1, y1, x2, y1)

因為手機屏幕的尺寸多樣,所以這里不設置固定的寬度和高度的值,而是封裝了一個獲取屏幕寬高度的方法,通過它計算屏幕滑動的坐標和距離。

3、調用swipeLeft()方法向左滑動,最后通過find_element_by_id()找到“enter”按鈕,然后點擊進入主界面

#向左滑動跳過引導頁
        x = 0
        while x < 3:
            self.swipeLeft()
            x += 1
        enterApp = self.driver.find_element_by_id("com.app.night:id/enter")
        enterApp.click()

完整的代碼如下所示:

import unittest
from appium import webdriver

class HelloWorld(unittest.TestCase):
    def test_enterFilter(self):
        desired_caps = {}
        desired_caps['platformName'] = 'Android'
        desired_caps['platformVersion'] = '4.4.4'
        desired_caps['app'] = '/Users/a140/Downloads/app.apk'
        desired_caps['deviceName'] = '03083025d0250909'
        self.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
        self.driver.implicitly_wait(5)
        #向左滑動跳過引導頁
        x = 0
        while x < 3:
            self.swipeLeft()
            x += 1
        enterApp = self.driver.find_element_by_id("com.app.night:id/enter")
        enterApp.click()

    #獲取屏幕寬度和高度
    def getSize(self):
        x = self.driver.get_window_size()['width']
        y = self.driver.get_window_size()['height']
        return (x, y)

    #向左滑動
    def swipeLeft(self):
        l = self.getSize()
        x1 = int(l[0] * 0.9)
        y1 = int(l[1] * 0.5)
        x2 = int(l[0] * 0.1)
        self.driver.swipe(x1, y1, x2, y1)

if __name__ == '__main__':
    suite = unittest.TestLoader().loadTestsFromTestCase(HelloWorld)
    unittest.TextTestRunner(verbosity=2).run(suite)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM