zoukankan      html  css  js  c++  java
  • appium python ios 自动化

      mac下搭建appium python selenium来针对ios应用进行自动化测试,并不是官网上的例子,自己程序调试成功。

      前言:因为appium的安装前要先确定nodejs的安装、python的安装、npm、selenium的安装 这些不想洗说。直接appium  

      一:安装appium,签完不能用sudo进行安装

          1、npm install appium  等待。这样成功后接着下一步

          2、npm install wd(为什么安装,真的不知道,貌似没安装也行)

          3、去下载appium 的dum文件进行安装。官网下载就好,直接安装

          4、sudo pip install Appium-Python-Client   安装,我不知道这个和上面的有什么区别,只是安装上面那个报错了

    到这里貌似appium安装好了,接下来就是ios打包的问题:

          问题:

            在开始的时候我直接是用xcode打的app包,然后手机里面也是把这个包安装好了的,结果无论怎么的,都是报错,报错,报错。

          办法:

            在网上找的所有教程,都是说的官网上下载那个教程,然后使用xcodebuild进行打包,然后怎么怎么的,可是我不是要例子,我只能用自己的包,所以问题来了:

            1、xcode里面打包的方式好几种,而且签名好几种,那么你需要进行选择,这个找开发帮忙,不细说,纠结。

            2、build的时候因为大多数用了pod这个第三方的插件,所以打包基本都会报错,那么找开发解决吧。打包的时候涉及到一个参数问题,指定工程名进行打包

            3、打包的时候直接在xcode里面选择project,选择build,不要选择其他的,这个时候build出来的包就在工程下面会多一个buld文件,这里面找到.app文件,拷贝出来,放在根目录下。

            4、把包弄好了之后,启动appium客户端,然后选择苹果那个小图标进行选择,在基本设置里面把刚.app文件的路径加进去,下面buildid的id在ccode里面找到输入进去,还有就是uuid,输入进去,其他的没了。

            5、脚本:

    #-*- coding: UTF-8 -*-
    import unittest
    from appium import webdriver
    import time
    
    class SimpleIOSTests(unittest.TestCase):
    
        def setUp(self):
            # setup appium
            app = '/Users/Easter/Desktop/AutoTestIOS/StudyAndProgress.app'  #和小图标里面的路径必须一样,下面的id和小图标里面的id必须一样
            self.driver = webdriver.Remote(
                command_executor='http://127.0.0.1:4723/wd/hub',
                desired_capabilities={
                    'app': app,
                    'platformName': 'iOS',
                    'platformVersion': '7.1',
                    'deviceName': '5422c4433ce7ab54545de64f39627a80b8b65en'
                })
    
        def tearDown(self):
            self.driver.quit()
    
    
        def test_ui_computation(self):
            time.sleep(5)
            # populate text fields with values
    #最新版本的appium使用name定位的时候会有问题。看了一下资料说的是appium的bug。 el = self.driver.find_element_by_xpath("//UIAApplication[1]/UIAWindow[1]/UIATabBar[1]/UIAButton[2]") el.click() time.sleep(5) if __name__ == '__main__': suite = unittest.TestLoader().loadTestsFromTestCase(SimpleIOSTests) unittest.TextTestRunner(verbosity=2).run(suite)

      

  • 相关阅读:
    dinoql 试用
    dinoql 使用graphql 语法查询javascript objects
    使用git_stats 统计分析git 仓库代码&& 集成webhook
    使用gitstats分析git 仓库代码
    PostGraphile 4.4 发布,支持real time 查询
    cube.js 学习(十)cube 来自官方的学习网站
    Optimize Cube.js Performance with Pre-Aggregations
    cube.js 学习(九)cube 的pre-aggregation
    cube.js 学习(八)backend部署模式
    cube.js 学习(七)cube.js type 以及format 说明
  • 原文地址:https://www.cnblogs.com/Mushishi_xu/p/5897724.html
Copyright © 2011-2022 走看看