您好,登錄后才能下訂單哦!
這篇“Python怎么利用appium實現模擬手機滑動操控的操作”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Python怎么利用appium實現模擬手機滑動操控的操作”文章吧。
OK,接下來我們就看一些,滑動操控 的腳本究竟要怎么寫。
在模擬 “滑動操控” 的時候,使用的方法就是 swipe() ,該方法的參數說明如下:
start_x:起始橫坐標
start_y:起始縱坐標
end_x:結束時橫坐標
end_y:結束時縱坐標
duration:滑動持續時間,單位毫秒,默認None(一般設置500-1000毫秒比較合適)
ps:如果不設置 "duration" ,即為 0秒 ,無法看到滑動效果。
duration 參數需要注意的是:在移動設備上滑動時間的快慢所形成的效果是不一樣的。以今日頭條APP首頁上滑為例,同樣的滑動距離,滑動較快則出現類似翻頁的效果,而滑動較慢則是同一則新聞從起始位置滑動到結束位置。
手機屏幕的坐標:以手機屏幕最左上角的坐標點為坐標中心(0, 0),向右話滑動則縱坐標不變,橫坐標變大;向下滑動則橫坐標不變,縱坐標變大。
在實際工作場景中,不同測試機的屏幕尺寸存在著很大的差異性。所以正常情況下,我們不會選擇使用固定的的坐標來滑動屏幕。
一般操作是,先獲取測試機屏幕尺寸,再通過獲取的手機屏幕尺寸來確定滑動的起始、結束坐標;這樣,即使在我們更換了測試手機后也不需要重新更改坐標。使用webdriver提供的get_window_size()方法可以獲取屏幕尺寸(即屏幕右下角的坐標),方法如下:
# 獲取屏幕寬度 width = driver.get_window_size()['width'] # 獲取屏幕高度 height = driver.get_window_size()['heigth']
滑動屏幕操作代碼如下:()
# 屏幕從下向上滑動 driver.swipe(width*0.5, height*0.9, width*0.5, height*0.1, 1000) sleep(1) # 屏幕從上向下滑動 driver.swipe(width*0.5, height*0.1, width*0.5, height*0.9, 1000) sleep(1) # 屏幕從左向右滑動 driver.swipe(width*0.1, height*0.5, width*0.9, height*0.5, 1000) sleep(1) # 屏幕從右向左滑動 driver.swipe(width*0.9, height*0.5, width*0.1, height*0.5, 1000) sleep(1)
代碼示例如下:
# coding=utf-8 from time import sleep from appium import webdriver # appium 的特色就是將安卓、IOS的底層封裝成了 webdriver 類型的語句 from appium.webdriver.common.appiumby import By # 啟動參數 desired_caps = {} # 定義 desired_caps 變量,用以賦值很多的啟動信息 desired_caps['platformName'] = 'Android' # 設備名稱、系統為 "Android" desired_caps['platformVersion'] = '7.1.2' # 這里是在夜神模擬器的設置中心查看安卓版本是 "7.1.2" ,后續會告訴大家如何切換版本 desired_caps['deviceName'] = '127.0.0.1:62001' # 這里如果是真機的話填寫的是設備名稱;因為我們用的是模擬器,填寫的是IP端口號 # desired_caps['appPackage'] = 'com.baidu.searchbox' # APP 的包名;這里我們使用的是通訊錄 # desired_caps['appActivity'] = 'com.baidu.searchbox.SplashActivity' # 啟動的界面的名字(也或者叫啟動名,默認是 "." 開頭的) # desired_caps['automationName']='UiAutomator1' # 聲明手機驅動 driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) # 注冊到這個節點上,傳入 "desired_caps"。這個節點就是 "appium" 開啟的端口節點 sleep(1) # 獲取屏幕寬度 width = driver.get_window_size()['width'] # 獲取屏幕高度 height = driver.get_window_size()['height'] # 利用 "swipe" 實現滑動, 屏幕從下向上滑動 driver.swipe(width*0.5, height*0.9, width*0.5, height*0.1, 1000) sleep(1) # 利用 "swipe" 實現滑動, 屏幕從上向下滑動 driver.swipe(width*0.5, height*0.1, width*0.5, height*0.9, 1000) sleep(1) # 利用 "swipe" 實現滑動, 屏幕從左向右滑動 driver.swipe(width*0.1, height*0.5, width*0.9, height*0.5, 1000) sleep(1) # 利用 "swipe" 實現滑動, 屏幕從右向左滑動 driver.swipe(width*0.9, height*0.5, width*0.1, height*0.5, 1000) sleep(1) driver.terminate_app('com.baidu.searchbox') # driver.quit()
上文中的腳本雖然也能夠實現我們針對 App 的 “滑動操控” 的操作,但是代碼的整潔度上來看不是那么的美觀。既然如此,我們是否能夠將其封裝起來,變成一個公共的方法,當然是可以的了,繼續往下看。
代碼示例如下:
# coding=utf-8 from time import sleep from appium import webdriver # appium 的特色就是將安卓、IOS的底層封裝成了 webdriver 類型的語句 def getSize(driver): """獲取頁面大小""" x = driver.get_window_size()['width'] y = driver.get_window_size()['height'] return(x, y) def swipeRight(driver): """向右滑動 - [x軸變動,y軸不變]""" l = getSize(driver) x1 = int(l[0]*0.8) x2 = int(l[0]*0.2) y = int(l[1]*0.5) driver.swipe(x1, y, x2, y, 1000) def swipeLeft(driver): """向左滑動 - [x軸變動,y軸不變]""" l = getSize(driver) x1 = int(l[0]*0.9) x2 = int(l[0]*0.1) y = int(l[1]*0.5) driver.swipe(x2, y, x1, y, 1000) def swipeDown(driver): """向下滑動 - [x軸不變,y軸變動]""" l = getSize(driver) y1 = int(l[1]*0.9) y2 = int(l[1]*0.1) x = int(l[0]*0.5) driver.swipe(x, y1, x, y2, 1000) def swipeUp(driver): """向上滑動 - [x軸不變,y軸變動]""" l = getSize(driver) y1 = int(l[1]*0.8) y2 = int(l[1]*0.2) x = int(l[0]*0.5) driver.swipe(x, y2, x, y1, 1000) def swipeDemo(): # 啟動參數 desired_caps = {} # 定義 desired_caps 變量,用以賦值很多的啟動信息 desired_caps['platformName'] = 'Android' # 設備名稱、系統為 "Android" desired_caps['platformVersion'] = '7.1.2' # 這里是在夜神模擬器的設置中心查看安卓版本是 "7.1.2" ,后續會告訴大家如何切換版本 desired_caps['deviceName'] = '127.0.0.1:62001' # 這里如果是真機的話填寫的是設備名稱;因為我們用的是模擬器,填寫的是IP端口號 # desired_caps['appPackage'] = 'com.baidu.searchbox' # APP 的包名;這里我們使用的是通訊錄 # desired_caps['appActivity'] = 'com.baidu.searchbox.SplashActivity' # 啟動的界面的名字(也或者叫啟動名,默認是 "." 開頭的) # desired_caps['automationName']='UiAutomator1' # 聲明手機驅動 driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) # 注冊到這個節點上,傳入 "desired_caps"。這個節點就是 "appium" 開啟的端口節點 sleep(1) # 利用 "swipe" 實現滑動, 屏幕從下向上滑動 swipeDown(driver) sleep(2) # 利用 "swipe" 實現滑動, 屏幕從上向下滑動 swipeUp(driver) sleep(2) # 利用 "swipe" 實現滑動, 屏幕從左向右滑動 swipeLeft(driver) sleep(2) # 利用 "swipe" 實現滑動, 屏幕從右向左滑動 swipeRight(driver) sleep(2) driver.terminate_app('com.baidu.searchbox') # driver.quit() if __name__ == '__main__': swipeDemo()
以上就是關于“Python怎么利用appium實現模擬手機滑動操控的操作”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。