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)