您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“怎么用Python實現(xiàn)打電話”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
一、環(huán)境配置
1、安裝 jdk 1.8+ ,并配環(huán)境變量。
2、安裝Android SDK,可以直接下載安裝,也可以通過android-studio里面安裝,安裝好后配環(huán)境變量,配好后cmd后輸入adb執(zhí)行成功則配好。
3、安裝appium 1.8.0,我用的這個版本,還挺穩(wěn)定,原生和微信H5支持還可以,其他版本試過一些,可能原生支持還行,微信公眾號H5頁面支持不友好。
二、查看元素
sdk安裝好后,找到uiautomatorviewer.bat打開,用來獲取元素id、text等屬性,用于我們定位元素,這點(diǎn)跟selenium那一套基本一致,不過有一點(diǎn)值得注意的是,安卓app里面的id并不是唯一的,這個跟在web里面有區(qū)別,用id的時候注意看下是否是唯一元素。
用左上角的工具審查元素,比如*鍵,可以看到id是star,其他按鍵各種元素id查看方式一致。
三、配置信息獲取
1、電腦手機(jī)通過數(shù)據(jù)線連接好,輸入命令adb devices,獲取手機(jī)的設(shè)備識別號。
2、命令行輸入:adb shell dumpsys window windows | findstr "Current"
用來獲取當(dāng)前應(yīng)用的包名和啟動頁。
包名:com.android.contacts
啟動頁:com.android.contacts.activities.TwelveKeyDialer
四、代碼編寫
代碼如下,我這里有相關(guān)引入文件。
import sys sys.path.insert(0,"C:\\Users\\Administrator\\Desktop\\imooc\\python_call") from action import Action from appium import webdriver action = Action() # 相關(guān)配置 action.desired_caps['platformName'] = 'Android' # 平臺 action.desired_caps['platformVersion'] = '7.0' # Android版本 action.desired_caps['deviceName'] = 'a20bc6990604' # 設(shè)備號 action.desired_caps['appPackage'] = 'com.android.contacts' # 包名 action.desired_caps['appActivity'] = 'com.android.contacts.activities.TwelveKeyDialer' # 啟動頁 action.desired_caps['unicodeKeyboard'] = True # 使用unicode編碼方式發(fā)送字符串 action.desired_caps['resetKeyboard'] = True # 將鍵盤隱藏起來,默認(rèn)true action.desired_caps['noReset'] = True # 應(yīng)用狀態(tài)是否需要重置,默認(rèn)true action.desired_caps['automationName'] = 'Uiautomator2' # 自動化引擎,兼容原生和H5 # 控制遠(yuǎn)程appium action.driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", action.desired_caps) # 點(diǎn)擊事件 action.click_key("id=>one") action.click_key("id=>five") action.click_key("id=>two") action.click_key("id=>three") action.click_key("id=>six") action.click_key("id=>two") action.click_key("id=>eight") action.click_key("id=>eight") action.click_key("id=>eight") action.click_key("id=>star") action.click_key("id=>star") action.click_key("id=>call_sim1")
其中click_key是我自定義的方法,比如傳入id=>star后,根據(jù)=>進(jìn)行split切分,前面是id,后面是id值,有些時候我會用xpath寫法,其實我下面是在項目中涉及很多變量,很多單獨(dú)維護(hù)了,可能你看起來有點(diǎn)復(fù)雜,其實跟selenium差不多,點(diǎn)擊方法就是click,找元素就是find_element,然后根據(jù)id找的話,要把id值傳進(jìn)去。
byDict = { "xpath": By.XPATH, "id": By.ID, }
def find_ele(self, loc): print(loc.split("=>")[0],loc.split("=>")[1]) element = WebDriverWait(self.driver, 30).until( lambda x: x.find_element(byDict[loc.split("=>")[0]], loc.split("=>")[1])) print(element) return element def click_key(self, loc): self.find_ele(loc).click()
五、運(yùn)行
啟動appium,以默認(rèn)0.0.0.0:4723啟動即可,然后運(yùn)行python程序,即可看到手機(jī)撥打電話執(zhí)行過程。
“怎么用Python實現(xiàn)打電話”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。