首页 > 代码库 > Appium Remote webdriver调用

Appium Remote webdriver调用

remote webdriver的模板

默认开启4723端口接受webdriver请求

默认开启4724用于和android通讯

#coding:utf-8#Import the common packageimport osimport unittestfrom appium import webdriverfrom 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.wallpaperdesired_caps[appActivity] = com.lovebizhi.wallpaper.WelcomeActivity

已经确定了是要测试哪个APP和APP中的哪个界面。直接运行Python脚本时就会跳转到对应的界面,此时在test中就不能操作在本界面中不存在的元素。否则会报错

如:想要在主体部分写卸载该APP或其他APP,就会报错

#coding:utf-8#Import the common packageimport osimport unittestfrom appium import webdriverfrom 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调用