用appium测试微信h5的方法

微信的设置

用微信打开debugx5.qq.com, 这是个微信的x5内核调试页面. 你可以在任何聊天窗口内输入这个网址. 并打开它. 

勾选"是否打开TBS内核Inspector调试功能"

使用ChromeDriver编写测试用例

首先安装ChromeDriver

从官方下载或者从你的appium的安装路径里面找chromedriver. 在appium的执行日志里面其实也会打印chromedriver的路径的

然后在电脑上启动它, 设置好端口

chromedriver--url-base=wd/hub--port=8000

可以使用selenium或者appium的客户端去编写测试用例.

如下是我的scalatest的测试用例. 大家可以自己用其他的语言实现

test("test chromedriver weixin"){

valoptions=newChromeOptions()

options.setExperimentalOption("androidPackage","com.tencent.mm")

options.setExperimentalOption("androidUseRunningApp",true)

options.setExperimentalOption("androidActivity",".plugin.webview.ui.tools.WebViewUI")

options.setExperimentalOption("androidProcess","com.tencent.mm:tools")

valcapability=DesiredCapabilities.chrome()

capability.setCapability(ChromeOptions.CAPABILITY,options)

valurl="http://127.0.0.1:8000/wd/hub"

valdriver=newAndroidDriver[WebElement](newURL(url),capability)

driver.get("https://testerhome.com/topics/6954")

println(driver.getPageSource)

driver.quit()

}

使用appium编写测试用例

有人会经常问为什么android上appium不能自动化微信webview, 其实是可以的. 主要是目前的appium有个bug导致的. 

在appium中context的切换时, 没有带上一个关键的androidProcess配置导致的. 

他会导致appium识别webview的时候, 把com.tencent.mm:tools的webview识别成com.tencent.mm的webview. 从而导致context切换失败.

正确的用appium测试微信h5的方法如下

test("test weixin h5"){

valcapability=newDesiredCapabilities()

capability.setCapability("app","")

capability.setCapability("appPackage","com.tencent.mm")

capability.setCapability("appActivity",".ui.LauncherUI")

capability.setCapability("deviceName","emulator-5554")

capability.setCapability("fastReset","false")

capability.setCapability("fullReset","false")

capability.setCapability("noReset","true")

//capability.setCapability("unicodeKeyboard", "true")

//capability.setCapability("resetKeyboard", "true")

//关键是加上这段

valoptions=newChromeOptions()

options.setExperimentalOption("androidProcess","com.tencent.mm:tools")

capability.setCapability(ChromeOptions.CAPABILITY,options)

valurl="http://127.0.0.1:4723/wd/hub"

valdriver=newAndroidDriver[WebElement](newURL(url),capability)

println(driver.getPageSource)

driver.findElementByXPath("//*[@text='我']").click

driver.findElementByXPath("//*[@text='收藏']").click

driver.findElementByXPath("//*[contains(@text, '美团外卖')]").click

println(driver.getPageSource)

println(driver.getContextHandles)

driver.context("WEBVIEW_com.tencent.mm:tools")

println(driver.getPageSource)

}

最关键的就是这句

valoptions=newChromeOptions()

options.setExperimentalOption("androidProcess","com.tencent.mm:tools")

capability.setCapability(ChromeOptions.CAPABILITY,options)


原链. https://testerhome.com/topics/6954

你可能感兴趣的:(用appium测试微信h5的方法)