欢迎来到Python教程自学网!
当前位置: 首页 > Python基础教程 > python实战之结合Appium自动化操作微信

python实战之结合Appium自动化操作微信

   

python实战之结合Appium自动化操作微信

本教程操作环境:win7系统,JDK1.8,Appium,Python3.7,android-sdk,JDK,模拟器

1.Appium介绍

Appium是一个开源的自动化测试工具,其支持iOS和安卓平台上的原生的,基于移动浏览器的,混合的应用。

Appium是基于以下的四个理念设计来满足移动平台测试自动化的要求的:

  • 因为需要自动测试应用程序,所以必须以任何形式重新编译或修改应用程序。

  • 不要把自己固定在特定的语言和特定的框架上,实现和运行测试。

  • 说到测试自动化APIs,移动测试框架不应该重新发明轮子

  • 移动测试的自动化框架应该开源,精神上,实际上,名义上!

2.使用步骤

(1)首先启动 Appium 和 模拟器,因为之前我们已经配置了 Appium,此时我们直接点击 Appium 的启动服务器按钮即可

(2)先通过 Python 来启动一下微信,代码实现如下:

desired_caps ={"platformName": "Android", #操作系统
"deviceName": "emulator-5554", #设备 ID
"platformVersion": "6.0.1", #设备版本号
"appPackage": "com.tencent.mm", #app 包名
"appActivity": "com.tencent.mm.ui.LauncherUI", #app 启动时主 Activity
'noReset': True, #是否保留 session 信息,可以避免重新登录
'unicodeKeyboard': True, #使用 unicodeKeyboard 的编码方式来发送字符串
'resetKeyboard': True #将键盘给隐藏起来
}
driver= webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

执行上述代码之后,如果发现模拟器中的微信已经启动了,就说明基本环境已经调通了;如果执行代码后发现调不到模拟器中的微信,先在 cmd 中执行一下 adb connect 127.0.0.1:7555 命令,再执行程序即可。

(3)实现微信内信息的发送(实操)

打开微信->点击搜索输入框->输入文件传输助手->点击文件传输助手->点击文本输入框->输入文本->点击发送,功能的代码实现如下:

importtimefrom appium importwebdriverif __name__ == '__main__':
desired_caps={"platformName": "Android", #操作系统
"deviceName": "emulator-5554", #设备 ID
"platformVersion": "6.0.1", #设备版本号
"appPackage": "com.tencent.mm", #app 包名
"appActivity": "com.tencent.mm.ui.LauncherUI", #app 启动时主 Activity
'noReset': True, #是否保留 session 信息,可以避免重新登录
'unicodeKeyboard': True, #使用 unicodeKeyboard 的编码方式来发送字符串
'resetKeyboard': True #将键盘给隐藏起来
}
driver= webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
time.sleep(5)print('点击微信搜索框')
driver.find_element_by_id('com.tencent.mm:id/f8y').click()
time.sleep(5)print('在搜索框输入搜索信息')
driver.find_element_by_id('com.tencent.mm:id/bhn').send_keys('文件传输助手')
time.sleep(3)print('点击搜索到的内容')
driver.find_element_by_id('com.tencent.mm:id/gbv').click()
time.sleep(3)#输入文字
driver.find_element_by_id('com.tencent.mm:id/al_').send_keys('hello')
time.sleep(3)#输入表情
driver.find_element_by_id('com.tencent.mm:id/anz').click()
time.sleep(3)
driver.find_element_by_id('com.tencent.mm:id/rv').click()#点击发送按钮发送信息
driver.find_element_by_id('com.tencent.mm:id/anv').click()#退出
driver.quit()