Appium Remote webdriver调用
Posted 珍真小心
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Appium Remote webdriver调用相关的知识,希望对你有一定的参考价值。
remote webdriver的模板
默认开启4723端口接受webdriver请求
默认开启4724用于和android通讯
#coding:utf-8 #Import the common package import os import unittest from appium import webdriver from time import sleep #设置路径信息 PATH = lambda p: os.path.abspath( os.path.join(os.path.dirname(__file__), p) ) class LoginAndroidTests(unittest.TestCase): def setUp(self): #初始化测试平台 desired_caps = {} desired_caps[\'platformName\'] = \'Android\' desired_caps[\'platformVersion\'] = \'4.4.2\' #Android版本 desired_caps[\'deviceName\'] = \'127.0.0.1:62001\' #连接到的设备名称,这个是夜神模拟器的名称 #desired_caps[\'app\'] = \'D:\\apk\\爱壁纸.apk\' #app的路径 desired_caps[\'appPackage\'] = \'com.lovebizhi.wallpaper\' #包名 desired_caps[\'appActivity\'] = \'com.lovebizhi.wallpaper.WelcomeActivity\' #activity名称 self.driver = webdriver.Remote(\'http://127.0.0.1:4723/wd/hub\', desired_caps) def tearDown(self): self.driver.quit() def test(self): #测试导航页 print("start test...") #判断是否安装爱壁纸APP wallpaper = self.driver.is_app_installed("com.lovebizhi.wallpaper") if wallpaper: #self.driver.remove_app("com.lovebizhi.wallpaper") sleep(8) # 点击某一壁纸图片 self.driver.find_elements_by_id("com.lovebizhi.wallpaper:id/image1")[4].click() sleep(4) # 点击设置壁纸 self.driver.find_element_by_id("com.lovebizhi.wallpaper:id/btSetup").click() sleep(5) else: self.driver.install_app("D:\\apk\\爱壁纸.apk") sleep(30)if __name__ == \'__main__\': suite =unittest.TestLoader().loadTestsFromTestCase(LoginAndroidTests) unittest.TextTestRunner(verbosity=2).run(suite)
如何查看app的appPackage和APPactivity?
1、下载apktool-new的压缩包,并解压
2、双击decode.bat运行
3、将apk拖入decode.bat中回车即可得到对应apk的文件夹
4、用记事本或notepad++等打开apk文件夹中的AndroidManifest.xml即可看到appPackage和APPactivity名称
在romote webdriver初始化的时候
desired_caps[\'appPackage\'] = \'com.lovebizhi.wallpaper\' desired_caps[\'appActivity\'] = \'com.lovebizhi.wallpaper.WelcomeActivity
已经确定了是要测试哪个APP和APP中的哪个界面。直接运行Python脚本时就会跳转到对应的界面,此时在test中就不能操作在本界面中不存在的元素。否则会报错
如:想要在主体部分写卸载该APP或其他APP,就会报错
#coding:utf-8 #Import the common package import os import unittest from appium import webdriver from time import sleep #设置路径信息 PATH = lambda p: os.path.abspath( os.path.join(os.path.dirname(__file__), p) ) class LoginAndroidTests(unittest.TestCase): def setUp(self): #初始化测试平台 desired_caps = {} desired_caps[\'platformName\'] = \'Android\' desired_caps[\'platformVersion\'] = \'4.4.2\' desired_caps[\'deviceName\'] = \'127.0.0.1:62001\' #desired_caps[\'app\'] = \'D:\\apk\\爱壁纸.apk\' desired_caps[\'appPackage\'] = \'com.lovebizhi.wallpaper\' desired_caps[\'appActivity\'] = \'com.lovebizhi.wallpaper.WelcomeActivity\' self.driver = webdriver.Remote(\'http://127.0.0.1:4723/wd/hub\', desired_caps) def tearDown(self): self.driver.quit() def test_1(self): #测试导航页 print("start test1...") #判断是否安装爱壁纸APP wallpaper = self.driver.is_app_installed("com.lovebizhi.wallpaper") if wallpaper: self.driver.remove_app("com.lovebizhi.wallpaper") sleep(8) else: self.driver.install_app("D:\\apk\\爱壁纸.apk") sleep(30) if __name__ == \'__main__\': suite =unittest.TestLoader().loadTestsFromTestCase(LoginAndroidTests) unittest.TextTestRunner(verbosity=2).run(suite)
报如下错误:
所以在初始化之后就不要使用卸载或安装程序了
以上是关于Appium Remote webdriver调用的主要内容,如果未能解决你的问题,请参考以下文章
收到错误:未为 appium 定义名称“webdriver”
Appium python appium 用 uiautomator2 后报错
Python + Appium 获取当前屏幕的截图方法的封装
appium---from appium import webdriver报错提示“Unresolved import webdriver”