appium(一)环境与属性解释

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,依次解释一下:

    //这是driver
    private AppiumDriver<WebElement> driver;

    @BeforeMethod
    public 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的值喂true
		capabilities.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();

你可能感兴趣的:(工作之余)