【Appium_Android_xpath定位】移動App之微信小程序,微信搜索+滑動頁面的自動化測試案例

#!/usr/bin/env/python3
# -*- coding:utf-8 -*-
'''
Author:leo
Date&Time:2019-08-09 and 22:11
FileName:20190809_咖啡小程序.py
Description:...
小程序:成都購房助手
如何查看微信webview中的元素
1、手機打開【開發者模式】
2、app必須是debug模式。
3、手機通過USB連接電腦,且能夠識別出來手機。
4、可以科學上網。

如何配置微信desired_caps環境參數
1、打開微信,在任意對話框中輸入debugx5.qq.com。
2、點擊發送成功的debugx5.qq.com,稍等片刻點擊進入設置頁面
3、切換到【seeting】,勾選【是否打開tbs內核】,保存退出
4、退出設置,重啓微信端
5、開啓谷歌瀏覽器的科學上網模式
6、打開chrome,地址欄輸入chrome://inspect/#devices,可以看到設備介紹
7、接下來就可以輕鬆識別元素了,和用f12查看元素沒有區別,請開始你的表演

代碼實戰(由於我沒有安卓手機,只能用模擬器,模擬器沒有網絡,遂只能做到基礎應用):
上面這些搞定了,在Appium裏寫代碼就簡單了,先說下關鍵的幾個點:
1、#必須加上此句desired_caps['chromeOptions']={'androidProcess': 'com.tencent.mm:tools'}
   #微信的package name=com.tencent.mm,activity=com.tencent.mm.ui.LauncherUI。
2、#可以通過下面的語句輸出webview的名稱
contexts=driver.contexts
print('contexts=',contexts)
3、#使用下面的語句切換到指定的webview裏
driver.switch_to.context('WEBVIEW_com.tencent.mm:tools')
4、切換到webview裏面,剩下的定位方式和web一模一樣,就是上面講的元素識別方法
5、#如果想返回原生態的view,可以用下面的語句
'''
from appium import webdriver
from time import sleep
desired_caps = {
    'platformName': 'Android',
    'platformVersion': '5',
    'deviceName': '127.0.0.1:62001',
    # 'app': r'D:\TestFiles\Appium\Apk\sqauto.apk',
    'appPackage': 'com.tencent.mm',
    'appActivity': 'com.tencent.mm.ui.LauncherUI',
    'unicodeKeyboard': True,
    'resetKeyboard':True,
    'noReset': True, # 初始化,True爲了避免每次打開APP都提問你是否獲取權限
    'newCommandTimeout': 6000,
    'automationName':'uiautomator2'
}
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub",desired_caps)
driver.implicitly_wait(20)
sleep(10)

text1 = driver.contexts
currentText = driver.current_context
print(f"全部上下文:{text1},當前上下文:{currentText}")

# 微信頂部標題欄
title = driver.find_element_by_id("com.tencent.mm:id/qh")
print(f"當前標題欄:{title.text}")
sleep(15)

# 點擊搜索按鈕
driver.find_element_by_id("com.tencent.mm:id/qi").click()
sleep(10)

# 輸入星巴克搜索
driver.find_element_by_id("com.tencent.mm:id/li").send_keys("星巴克\n")
sleep(3)
driver.find_element_by_id("com.tencent.mm:id/c2h").click()
sleep(10)

# 網絡異常打印title
print(driver.find_element_by_accessibility_id("當前所在頁面,搜一搜").text)
sleep(5)

# 返回主頁
driver.find_element_by_accessibility_id("返回").click()
sleep(5)
driver.find_element_by_accessibility_id("返回").click()
sleep(5)

# 初始化座標
size = driver.get_window_size()
print(size)
startx = size["width"]*0.5
starty = size["height"]*0.2
endy = size["height"]*0.8
sleep(5)

# 下拉顯示小程序
driver.swipe(startx, starty, startx, endy, 500)
sleep(5)

# 打印小程序名稱
name = driver.find_element_by_xpath("//android.widget.TextView[@text='成都購房顧問']")
print("小程序名稱爲:%s" %(name.text))

# # 微信底部菜單欄
# wechat = driver.find_element_by_id("com.tencent.mm:id/b9g")
# print(wechat.text)

input("Press anykey to quit...")
driver.quit()

--------------------------------------------------------------------------------------------------

全部上下文:['NATIVE_APP'],當前上下文:NATIVE_APP
當前標題欄:微信

當前尺寸:{'width': 1080, 'height': 1920}
小程序名稱:成都購房顧問
菜單:微信,通訊錄,發現,我

Process finished with exit code 0

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章