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)