Appium是一个开源的自动化工具,可以用任意的编程语言去写
使用Appium需要在本地设置一个相应服务器,相应自动化脚本的服务器,如果需要安装请百度具体教程,或者使用node.js的命令在全局模式安装,可视化可以用GUI安装,会生成桌面图标
启动时要设置host和port,如果server是安装在本机的,那么host为127.0.0.1,默认端口号为4723点击start后appium的服务就开启了
客户端建议使用maven进行编译在pom文件进行依赖(百度一下appium maven和testng的依赖就有了,官方建议用testng),下载后就直接可以使用appium中各种各样的api了),下载后就直接可以使用appium中各种各样的api了
创建好测试类后就可以使用testng生成骨架,使用alt+insert选择Generate->setup method、test Method、TearDown method这三个生成基本的骨架。
如果不知道脚本怎么编写,可以再官方查看给出的demo:(github.com/appium/sample-code/tree/master/sample-code/examples)根据不同的编程语言选择junit–>然后在目录中即可选择demo进行查看
创建好骨架之后需要使用对应的driver,所以需要声明一下,使用官方给出的demo,依次解释一下:
//这是driverprivate AppiumDriver<WebElement> driver;@BeforeMethodpublic void setUp() throws MalformedURLException {
获取根目录File classpathRoot = new File(System.getProperty("user.dir"));把需要安装apk的路径放进去File app = new File(classpathRoot, "路径/apk名字.apk");这个是绑定设备熟的属性,所以new了一个新对象出来DesiredCapabilities capabilities = new DesiredCapabilities();设备的名字,这个可以随便改capabilities.setCapability("deviceName","yibole");这个是指被测应用的路径capabilities.setCapability("app", app.getAbsolutePath());如果想要不是每次都是第一次启动,可以设置noReset的值喂truecapabilities.setCapability("noReset",true); 这个是启动类,启动类如何获得(需要反编译或者使用SDK的aapt工具):在目录下dir,然后输入aapt dump badging 加上apk的名字就可以查看他的属性,其中launchable-activity:name=“巴拉巴拉”就是他的启动类com.巴拉巴拉开头的capabilities.setCapability("appActivity", "com.balabala");因为上面声明了一个driver,下面这个是对对象进行实例化,AndroidDriver是服务端的地址,这里的地址需要和appium一致,否则发了请求没有回复driver = new AndroidDriver<WebElement>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);}
环境和属性基本就是这个样子,先吃饭(`ヮ? )
========================================
和selenium差不多,就是先定位,然后给出操作的指令
长按
今天无意间看到一个长按的代码
先把定位好的路径返回给返回值类型为WebElement的first。
WebElement first = driver.findElementByXPath("Xpath路径");
然后new一个TouchAction方法,给个名字叫touch
TouchAction touch = new TouchAction(driver);
然后使用这个方法的longPress方法,并把路径交给他,然后在用preform的release,就可以长按了
touch.longPress(first).perform().release();