51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2120|回复: 0
打印 上一主题 下一主题

Appium Remote webdriver调用

[复制链接]
  • TA的每日心情
    奋斗
    2021-8-16 14:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2018-4-20 13:28:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    remote webdriver的模板

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

    默认开启4724用于和android通讯

    复制代码
    1. #coding:utf-8
    2. #Import the common package
    3. import os
    4. import unittest
    5. from appium import webdriver
    6. from time import sleep
    复制代码

    #设置路径信息
    1. PATH = lambda p: os.path.abspath(
    2.     os.path.join(os.path.dirname(__file__), p)
    3. )

    4. class LoginAndroidTests(unittest.TestCase):
    5.     def setUp(self):
    6.         #初始化测试平台
    7.         desired_caps = {}
    8.         desired_caps['platformName'] = 'Android'
    9.         desired_caps['platformVersion'] = '4.4.2'   #Android版本
    10.         desired_caps['deviceName'] = '127.0.0.1:62001'  #连接到的设备名称,这个是夜神模拟器的名称
    11.         #desired_caps['app'] = 'D:\apk\爱壁纸.apk'  #app的路径
    12.         desired_caps['appPackage'] = 'com.lovebizhi.wallpaper'  #包名
    13.         desired_caps['appActivity'] = 'com.lovebizhi.wallpaper.WelcomeActivity'  #activity名称
    14.         self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
    15.       
    16.     def tearDown(self):
    17.         self.driver.quit()
    18.         
    19.     def test(self):
    20.         #测试导航页
    21.         print("start test...")

    22.         #判断是否安装爱壁纸APP
    23.         wallpaper = self.driver.is_app_installed("com.lovebizhi.wallpaper")
    24.         if wallpaper:
    25.             #self.driver.remove_app("com.lovebizhi.wallpaper")
    26.             sleep(8)
    27.             # 点击某一壁纸图片
    28.             self.driver.find_elements_by_id("com.lovebizhi.wallpaper:id/image1")[4].click()
    29.             sleep(4)
    30.             # 点击设置壁纸
    31.             self.driver.find_element_by_id("com.lovebizhi.wallpaper:id/btSetup").click()
    32.             sleep(5)
    33.         else:
    34.             self.driver.install_app("D:\apk\爱壁纸.apk")
    35.             sleep(30)if __name__ == '__main__':
    36.     suite =unittest.TestLoader().loadTestsFromTestCase(LoginAndroidTests)
    37.     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,就会报错

    复制代码
    1. #coding:utf-8
    2. #Import the common package
    3. import os
    4. import unittest
    5. from appium import webdriver
    6. from time import sleep

    7. #设置路径信息
    8. PATH = lambda p: os.path.abspath(
    9.     os.path.join(os.path.dirname(__file__), p)
    10. )

    11. class LoginAndroidTests(unittest.TestCase):
    12.     def setUp(self):
    13.         #初始化测试平台
    14.         desired_caps = {}
    15.         desired_caps['platformName'] = 'Android'
    16.         desired_caps['platformVersion'] = '4.4.2'
    17.         desired_caps['deviceName'] = '127.0.0.1:62001'
    18.         #desired_caps['app'] = 'D:\apk\爱壁纸.apk'
    19.         desired_caps['appPackage'] = 'com.lovebizhi.wallpaper'
    20.         desired_caps['appActivity'] = 'com.lovebizhi.wallpaper.WelcomeActivity'
    21.         self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

    22.         
    23.       
    24.     def tearDown(self):
    25.       
    26.         self.driver.quit()
    27.         
    28.     def test_1(self):
    29.         #测试导航页
    30.         print("start test1...")

    31.         #判断是否安装爱壁纸APP
    32.         wallpaper = self.driver.is_app_installed("com.lovebizhi.wallpaper")
    33.         if wallpaper:
    34.             self.driver.remove_app("com.lovebizhi.wallpaper")
    35.             sleep(8)
    36.         else:
    37.             self.driver.install_app("D:\apk\爱壁纸.apk")
    38.             sleep(30)
    39.                   

    40. if __name__ == '__main__':
    41.     suite =unittest.TestLoader().loadTestsFromTestCase(LoginAndroidTests)
    42.     unittest.TextTestRunner(verbosity=2).run(suite)
    复制代码

    复制代码
    报如下错误:






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

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-23 01:00 , Processed in 0.068053 second(s), 30 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表