手把手教你appium_ios第一个例子

时间:2020-12-26 20:48:39


 

 

参考:

http://www.cnblogs.com/enjoytesting/p/3513637.html

 

参考代码:

https://github.com/appium/appium/blob/master/sample-code/examples/python/simple.py

 

本文示例下载:

包括:自己写的一个很简单的ios例子和上面链接中提到的simple.py,和我修改后的test1.py

http://download.csdn.net/detail/testingba/7200461

 

参考帖子,因为环境已经安装好了,所以第一步就不需要了:

二,Selenium WebDriver

因为是Python版,所以就去Selenium官网下载Python的WebDriver(selenium-2.39.0.tar.gz)

https://pypi.python.org/pypi/selenium

解压:

#gzip -dc selenium-2.39.0.tar.gz | tar xvf -

安装:

#cd selenium-2.39.0

#sudo python setup.py install  //sudo依旧是解决Permission的问题

-----------

这样,WebDriver就安装成功了

 

 

我照着操作了一遍,版本不同了而已,很顺利:

selenium-2.41.0.tar.gz

 

Installed /Library/Python/2.7/site-packages/selenium-2.41.0-py2.7.egg

Processing dependencies for selenium==2.41.0

Finished processing dependencies for selenium==2.41.0

 

 

admins-Mac:selenium-2.41.0 admin$ which python

/usr/bin/python

admins-Mac:selenium-2.41.0 admin$ python -V

Python 2.7.2

 

 

编译例子:

三,要测试的app

测试的是appium提供的TestApp

首先,我们需要用xcode编译这个app

#cd appium

#cd sample-code/apps/TestApp

#xcodebuild -sdk iphonesimulator  //为了防止iphonesimulator和设置的冲突,没有注明iphonesimulator的版本

-----------

如果看到** BUILD SUCCEEDED **,这个TestApp就build成功了。

 

操作的时候,留心先进入到项目目录下:

admins-Mac:testDemo admin$ cd test

admins-Mac:test admin$ ls -l

total 0

drwxr-xr-x  14 admin  staff  476 Apr 22  2013 test

drwxr-xr-x@  5 admin  staff  170 Apr 22  2013 test.xcodeproj

 

admins-Mac:test admin$ xcodebuild -sdk iphonesimulator

Build settings from command line:

SDKROOT = iphonesimulator7.0

=== BUILD TARGET test OF PROJECT test WITH THE DEFAULT CONFIGURATION (Release) ===

 

…..

 

我后来运行的时候老是不能指定某个模拟器加载,而老是加载ios7.0,估计就是这个环节的相关配置引起的,以后有空再研究吧。不过也有群友说文档上说会自动启动最高版本的模拟器,这是不可以修改的。算了,反正以后多半使用真机做。

 

 

看到:** BUILD SUCCEEDED ** 就是编译成功了,在当前目录下就会生成一个build目录,顺带找找app文件在哪里。

admins-Mac:test admin$ pwd

/Users/admin/Documents/demo/testDemo/test

admins-Mac:test admin$ ls -l

total 0

drwxr-xr-x@  4 admin  staff  136 Apr 15 16:02 build

drwxr-xr-x  14 admin  staff  476 Apr 22  2013 test

drwxr-xr-x@  5 admin  staff  170 Apr 22  2013 test.xcodeproj

admins-Mac:test admin$ find build|grep test.app$

build/Release-iphonesimulator/test.app

 

好了,这下可以写测试的python脚本了,我就在这个目录下建立了一个test1.py。因为代码中需要指明app位置,所以留心自己的脚本所在位置和app文件的相对位置。

 

参考的代码就看提供的示例了,我的目的是想试试引用的方法和对应的属性,是title还是label,汉字的是否支持。所以弄了四个控件,两个button,两个testfield

01.png

 手把手教你appium_ios第一个例子

02.png

手把手教你appium_ios第一个例子

 

03.png

 手把手教你appium_ios第一个例子

04.png

手把手教你appium_ios第一个例子

 

运行:python test1.py

还算顺利,自动加载了模拟器,运行了被测程序,别忘记了启动appium呀。

 

测试:

T1: 脚本中有汉字都不行,哪怕是注释了的,更别说用汉字引用了,据群友说已经有人解决了这个问题,可以去testerhome上搜搜,后续再弄吧。

 

buttons = self.driver.find_elements_by_tag_name("englishname")

buttons[0].click()

 

# button1 = self.driver.find_elements_by_tag_name("汉字计算")

# button1.click()

 

报错:

admins-Mac:test admin$ python test1.py

  File "test1.py", line 40

SyntaxError: Non-ASCII character '\xe6' in file test1.py on line 40, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

 

 

T2:

       button1=self.driver.find_elements_by_tag_name("englishname")

       button1[0].click()

----------------------------------------------------------------------

Traceback (most recent call last):

  File "test1.py", line 38, in test_ui_computation

    button1[0].click()

IndexError: list index out of range

 

T3:

       button1=self.driver.find_elements_by_name("englishname")

       button1[0].click()

----------------------------------------------------------------------

Traceback (most recent call last):

  File "test1.py", line 38, in test_ui_computation

    button1[0].click()

IndexError: list index out of range

 

T4:

       button1=self.driver.find_elements_by_name("buttonacclabel")

       button1[0].click()

OK

 

T5:

删除掉accessiblity label,只留下title属性,重新编译app,运行脚本:

       button1=self.driver.find_elements_by_name("englishname")

       button1[0].click()

----------------------------------------------------------------------

Traceback (most recent call last):

  File "test1.py", line 38, in test_ui_computation

    button1[0].click()

IndexError: list index out of range

 

 

哎哟喂,看来self.driver.find_elements_by_name只能使用控件的accessiblitylabel属性,难道要通知开发把每个控件加上这个属性?

我猜测title可能也有其他的引用方式,只是我没有找到吧?

 

勉强算是弄完了,还有太多的东西不清楚。先写给大家参考参考吧。