小程序和公众号自动化测试

1.识别手机
2.开启调试:
针对微信版本在7.0+,微信有对H5开关做了调整,需要在聊天窗口输入如下:
http://debugmm.qq.com/?forcex5=true
http://debugx5.qq.com
3.获取小程序所在的进程(微信有多个进程,需要知道小程序运行时是在哪个进程当中)
打开微信进入小程序后,在cmd当中运行:
获取进程号命令:adb shell dumpsys activity top | findstr ACTIVITY
获取进程名称:adb shell ps 进程号
4、appium代码 - 启动参数当中:
#支持X5内核应用自动化配置 - 不使用安卓默认自带的webview
desired_caps[“recreateChromeDriverSessions”] = True
# 切换到webview时,小程序在哪个进程
desired_caps[“chromeOptions”] = {“androidProcess”:“com.tencent.mm:appbrand0”}
5、进入小程序之后,获取当前所有的上下文,切换与4当中的进程名称一致的webview:com.tencent.mm:appbrand0
注意:
chromedriver版本要与腾讯x5版本匹配,而不是原生的webview
6、获取小程序当中所有的窗口。
遍历所有窗口,并切入窗口的html中,查找有代表性的元素。
print(“=进入web自动化环节===============”)
#打印当前所有的窗口
hs = driver.window_handles
print(“当前所有的窗口为:”,hs)

# #print(“当前所在的窗口为:”,driver.current_window_handle)

# #需要找到哪一个窗口有柠檬班信息的窗口,然后再在其下找元素操作。

# #遍历所有的handles,找到当前页面所在的handle:如果pageSource有包含你想要的元素,就是所要找的handle

# #小程序的页面来回切换也需要:遍历所有的handles,切换到元素所在的handle

for handle in hs:
driver.switch_to.window(handle)
print(“切换到窗口:”,handle)
time.sleep(3)
#print(driver.page_source)
if driver.page_source.find(“”) != -1:
break

**# 启动appium时,需要指定chromedriver.exe的目录。使用appium默认目录下的会报错。
在切换到小程序webview时,会去匹配chrome内核的39的驱动。在切换完成之后,在打印所有的窗口时,会使用x5内核的版本。 # 所以指定一个非默认目录下面的chromedriver.exe(X5内核对应的版本),此问题就不会出现

在appium server上设置chromedriver的路径:D:\ChromeDrivers\chromedriver.exe**

desired_caps = {}
支持X5内核应用自动化配置
desired_caps[“recreateChromeDriverSessions”] = True
android 4.4以下的版本通过Selendroid来切换到webview
desired_caps[“automationName”] = “UiAutomator2”
desired_caps[“platformName”] = “Android”
desired_caps[“platformVersion”] = “9.0”
desired_caps[“deviceName”] = “Android Emulator”
desired_caps[“appPackage”] = “com.tencent.mm”
desired_caps[“appActivity”] = “com.tencent.mm.ui.LauncherUI”
desired_caps[“chromedriverExecutableDir”] = ‘D:\ChromeDrivers\chrome77’
desired_caps[“noReset”] = True
desired_caps[“unicodeKeyboard”] = True
desired_caps[“resetKeyboard”] = True

ChromeOptions使用来定制启动选项,因为在appium中切换context识别webview的时候, # 把com.tencent.mm:toolsmp的webview识别成com.tencent.mm的webview. # 所以为了避免这个问题,加上androidProcess: com.tencent.mm:appbrand0或com.tencent.mm:toolsmp
desired_caps[“chromeOptions”] = {“androidProcess”: “com.tencent.mm:appbrand0”}#小程序
desired_caps[“chromeOptions”] = {“androidProcess”: “com.tencent.mm:toolsmp”}#公众号

#desired_caps[“browserName”] = “”
driver = webdriver.Remote(‘http://127.0.0.1:4723/wd/hub’, desired_caps)
wait = WebDriverWait(driver,30)

#切换到小程序webview
driver.switch_to.context(‘WEBVIEW_com.tencent.mm:appbrand0’)

#切换到公众号webview
driver.switch_to.context(‘WEBVIEW_com.tencent.mm:toolsmp’)

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值