虫师python appium自动化测试书_基于python的Appium自动化测试的坑
真的感謝@蟲(chóng)師 這位來(lái)自互聯(lián)網(wǎng)的老師,讓我這個(gè)原本對(duì)代碼膽怯且迷惑的人開(kāi)始學(xué)習(xí)自動(dòng)化測(cè)試。
一開(kāi)始搜索自動(dòng)化測(cè)試的時(shí)候,蟲(chóng)師的博客園教程都是在百度的前幾位的,我就跟著蟲(chóng)師博客園里面的教程學(xué)習(xí)。后來(lái)學(xué)seleinum聽(tīng)說(shuō)他出書(shū)了《python+selenium》的這本我買(mǎi)了也學(xué)習(xí)了,是這本書(shū)帶著我這個(gè)代碼小白入門(mén)的,其實(shí)很多事情不愿意開(kāi)始就一直不會(huì)開(kāi)始,一旦開(kāi)始了,可能也沒(méi)有當(dāng)初想的那么難。最近想學(xué)習(xí)下appium的時(shí)候發(fā)現(xiàn)他還有一個(gè)專(zhuān)門(mén)針對(duì)測(cè)試的網(wǎng)頁(yè)http://www.testclass.net/,現(xiàn)在這么有用且條理清晰沒(méi)有廣告的網(wǎng)站真的很難得。
有關(guān)appium幾乎所有的內(nèi)容都是跟著testclass網(wǎng)站上的教程走下來(lái)的,不過(guò)踩到了幾個(gè)坑,這里就記錄一下這幾個(gè)坑。
一、Could not extract PIDs from ps output.
配置好所有的環(huán)境后,運(yùn)行腳本,提示下面的錯(cuò)誤:
selenium.common.exceptions.WebDriverException: Message: A new session could not be created. (Original error: Could not extract PIDs from ps output. PIDS: [], Procs: ["bad pid 'uiautomator'"])
修改 Appium\node_modules\appium\node_modules\appium-adb\lib\adb.js 文件
添加這行:
this.shell("ps '" + name +?"'",?function?(err, stdout) {
...
var procs = [];
var outlines = stdout.split("\n");
outlines.shift() ??//添加這行
參考文檔:http://blog.csdn.net/zxz_tsgx/article/details/53204258
二、獲取應(yīng)用的包名packageName 和 ActivibyName
配置desired_caps 信息時(shí)需要獲得appPackage和appActivity
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '7.0'
desired_caps['deviceName'] = 'c1b8cb07'
desired_caps["appPackage"] = 'com.lianchuan.cashloan'
desired_caps['appActivity'] = 'com.lianchuan.cashloan.activity.other.SplashActivity'
如果關(guān)于apk的信息未知,可以通過(guò)使用logcat方法:
清除logcat內(nèi)容,使用命令adb logcat -c
啟動(dòng)logcat,使用命令adb logcat ActivityManager:I *:s
啟動(dòng)要查看的程序
括號(hào)中分別為PackageName和ActivityName
參考文檔:http://blog.csdn.net/jlminghui/article/details/40622103
三、有關(guān)開(kāi)啟android模擬器
創(chuàng)建模擬器時(shí)提示 No System images installed for this target,需要到SDK Manager中安裝“ARM EABI v7a System Image”組件。
模擬器打開(kāi)是很慢的,需要很多耐心,且模擬其中的一些操作和真機(jī)還有所不同,下面是模擬器按鍵和鍵盤(pán)按鍵的對(duì)應(yīng)。
參考文檔:http://www.cnblogs.com/fnng/p/4560298.html
四、android webdriver appium中的Xpath定位
appium中的定位主要用到的工具是SDK 自帶的uiautomatoviewer.bat,這個(gè)文件存放在SDK 目錄的tools文件夾中。
UI automator Viewer工具可以查看錄制下來(lái)的頁(yè)面的屬性。
參考文檔:https://testerhome.com/topics/7129
五、appium中滑動(dòng)屏幕的方法
appium中的swipe方法的使用為:swipe(int startx, int starty, int endx, int endy, int duration)
start_x:開(kāi)始滑動(dòng)的x坐標(biāo)。 * start_y:開(kāi)始滑動(dòng)的y坐標(biāo)。 * end_x:結(jié)束滑動(dòng)的x坐標(biāo)。 * end_y:結(jié)束滑動(dòng)的y坐標(biāo)。 * duration:持續(xù)時(shí)間
但是不同大小的手機(jī)屏幕,元素所在的位置是不確定的,所以可以用占屏幕的位置比例來(lái)定位滑動(dòng)的位置。
獲取屏幕的寬 ?width?=?driver.get_window_size()['width']
獲取屏幕高 ?height?=?driver.get_window_size()['height']
獲得屏幕的寬高之后,上滑操作可以理解為,手指從屏幕的3/4高度出移動(dòng)到1/4高度處。
driver.swipe(1/2*width, 3/4*height,?1/2*with,?1/7*height,?200)
參考文檔:http://blog.csdn.net/u011541946/article/details/77986018
六、在有些手機(jī)上每次運(yùn)行都要提示安裝Appium Settings 和 Unlock的問(wèn)題
不同的手機(jī)設(shè)置這個(gè)情況也未必都會(huì)出現(xiàn),如果出現(xiàn)這個(gè)問(wèn)題,可以在手機(jī)已經(jīng)安裝好這兩個(gè)之后,操作\Appium\node_modules\appium\lib\devices\android目錄下的android.js文件
//this.pushSettingsApp.bind(this),
//this.pushUnlock.bind(this),
//this.unlock.bind(this),
將上面三行注釋再重啟appium。
參考文檔:https://www.cnblogs.com/dreamyu/p/8027050.html
七、Appium中send_keys無(wú)法輸入中文 和 Appium中鍵盤(pán)輸入不能使用的問(wèn)題
Appium已支持中文輸入,但是需要用appium自帶輸入法(沒(méi)有UI 界面)
在初始化設(shè)置中增加一下兩行代碼:
desired_caps["unicodeKeyboard"] = "True"
desired_caps["resetKeyboard"] = "True"
參考文檔:https://testerhome.com/topics/1903
Appium中鍵盤(pán)輸入無(wú)法使用問(wèn)題,需要用adb方法先調(diào)用一個(gè)輸入法,在cmd中輸入
adb shell ime list -s ? ? ?查看所有可用輸入法
adb shell ime set com.sohu.inputmethod.sogou/.SogouIME ? ?調(diào)用搜狗輸入法
將對(duì)adb的調(diào)用寫(xiě)入python代碼:
import os
command = 'adb shell ime list -s'
os.system(command)
以上代碼就可以在python中使用adb命令。
參考文檔:https://www.jianshu.com/p/28937a73316e
(有些輸入法依舊不能使用鍵盤(pán)press_keycode功能,測(cè)試搜狗輸入法可以使用;但是有的輸入法不能直接用send_keys上傳文字,測(cè)試搜狗輸入法不能直接上傳文字,這時(shí)候,又需要用上面那個(gè)方法調(diào)出appium自帶的輸入法輸入中文后,再換成搜狗,然后再點(diǎn)擊鍵盤(pán)……復(fù)雜了我的appium!)
總結(jié)
以上是生活随笔為你收集整理的虫师python appium自动化测试书_基于python的Appium自动化测试的坑的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 3nm贵出天际 多家客户推迟订单 台积电
- 下一篇: python找出只出现一次的数字_Pyt