科技改變生活 · 科技引領(lǐng)未來
作者:il_持之以恒_li
http://blog.csdn.net/qq_45404396/article/details/112750110
近段時間,看了一下運用python實現(xiàn)app自動化的視頻,覺得那上面的講的不錯,于是就用所學(xué)的知識做了一個程序,實現(xiàn)自動回復(fù)QQ消息。
打開命令窗口,輸入命令:pip install appium-python-client
下載網(wǎng)址為:http://appium.io
安裝好之后,添加環(huán)境變量JAVA_HOME,指定jdk的安裝目錄,小編為:
添加一個環(huán)境變量ANDROID_HOME,設(shè)置值為sdk包的解壓目錄,小編為:
另外,最好在path里面添加adb.exe的環(huán)境變量
小編用的是米卓同屏助手,下載網(wǎng)址為:http://cn.mirroid.com
小編用的USB連接,需要一條數(shù)據(jù)線,將手機和電腦端連接起來,同時需要打開手機的開發(fā)者模式。
那么怎樣打開開發(fā)者模式,以小編的手機為例(OPPO手機)來到手機設(shè)置,點擊關(guān)于手機,之后一直點擊版本號,當(dāng)出現(xiàn)以下字樣即可。
然后進入其他設(shè)置(不同手機可能不同),就可以看到這里多了一個開發(fā)者選項了。
進入開發(fā)者選項,然后打開,可以發(fā)現(xiàn)這里有一個USB調(diào)試的開關(guān),打開它。
打開之后,就可以看到在這個投屏軟件上了出現(xiàn)了手機的畫面。
在命令窗口中輸入:adb devices -l ,如果出現(xiàn)以下這個畫面,應(yīng)該是成功連接了!
有個時候,可能會報錯,一般原因是投屏軟件的adb.exe版本和sdk的adb.exe版本不一致導(dǎo)致的,(小編自己猜測的)應(yīng)該只需把其中任意一個adb.exe復(fù)制到另外那個那里就行了。
參考代碼如下:
from appium import webdriverimport timedesired_caps={ &39;platformName&39;:&39;Android&39;, &39;platformVersion&39;:&39;8.1&39;, &39;deviceName&39;:&39;xxx&39;, &39;appPackage&39;:&39;com.tencent.qqlite&39;, 自動化應(yīng)用 &39;appActivity&39;:&39;com.tencent.mobileqq.activity.SplashActivity&39;, &39;unicodeKeyboard&39;:True, &39;resetKeyboard&39;:True, &39;noReset&39;:True, &39;newCommandTimeout&39;:6000, &39;automationName&39;:&39;UiAutomator2&39;}driver=webdriver.Remote(&39;http://localhost:4723/wd/hub&39;,desired_caps)driver.implicitly_wait(10)driver2=driver.find_element_by_id(&39;recent_chat_list&39;)list2=driver2.find_elements_by_class_name(&39;android.widget.LinearLayout&39;)print(&39;當(dāng)前QQ消息為%d個&39;%(len(list2)))time.sleep(2)list2[0].click()def send_Message(text2:str): 發(fā)消息 driver4=driver.find_element_by_id(&39;inputBar&39;) driver4.find_element_by_id(&39;input&39;).send_keys(text2) driver4.find_element_by_id(&39;fun_btn&39;).click() time.sleep(2) print(&34;發(fā)送消息:%s&34;%(text2))list4=[&34;劉邦,字季,沛郡豐邑(今江蘇省豐縣)人。中國歷史上杰出的政治家、戰(zhàn)略家和軍事指揮家,漢朝開國皇帝,漢民族和漢文化的偉大奠基者和開拓者,對漢族的發(fā)展以及中國的統(tǒng)一有突出貢獻。&34;,&34;還沒&34;,&34;湖南省,簡稱“湘”,是中華人民共和國省級行政區(qū),省會長沙,界于北緯24°38′~30°08′,東經(jīng)108°47′~114°15′之間,東臨江西,西接重慶、貴州,南毗廣東、廣西,北連湖北,總面積21.18萬平方千米。&34;]while True: try: driver3=driver.find_element_by_id(&39;listView1&39;) list3=driver3.find_elements_by_class_name(&39;android.widget.RelativeLayout&39;) text=list3[-1].find_element_by_id(&39;chat_item_content_layout&39;).text print(&39;收到消息:%s&39;%(text)) 接收消息 time.sleep(5) if(text==&39;你好,請幫我查閱一下劉邦的簡介&39;): send_Message(list4[0]) elif(text==&34;你吃中飯了沒&34;): send_Message(list4[1]) elif(text==&34;介紹一下湖南唄!&34;): send_Message(list4[2]) except Exception as e: pass
在運行代碼的過程當(dāng)中,會在手機上自動安裝一些東東,同意安裝即可。
了解更多陳夕
版權(quán)所有 未經(jīng)許可不得轉(zhuǎn)載
增值電信業(yè)務(wù)經(jīng)營許可證備案號:遼ICP備14006349號
網(wǎng)站介紹 商務(wù)合作 免責(zé)聲明 - html - txt - xml