zoukankan      html  css  js  c++  java
  • 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)

    报如下错误:

    所以在初始化之后就不要使用卸载或安装程序了

  • 相关阅读:
    virtualbox中ubuntu和windows共享文件夹设置
    嵌入式Linux USB WIFI驱动的移植
    U-boot mkimage指定Linux内核地址时的两种方式
    ramdisk作为根文件系统的配置
    ARM Linux系统的时钟机制
    ARM Linux 如何--注册和触发--软中断
    FAT32文件系统--For TF卡
    如何编写Linux设备驱动程序
    WiFi基本知识 .
    idea插件篇之java内存分析工具(JProfiler)
  • 原文地址:https://www.cnblogs.com/sker/p/5822531.html
Copyright © 2011-2022 走看看