@Test

public void testUIComputation() throws Exception {

// populate text fields with values

populate();

// trigger computation by using the button

//点击控件计算两个数的和

WebElement button = driver.findElement(By.className("UIAButton"));

button.click();

// is sum equal ?

//判断得到的数是否和正确的和相等

WebElement texts = driver.findElement(By.className("UIAStaticText"));

assertEquals(String.valueOf(values.get(0) + values.get(1)), texts.getText());

}

@Test

public void testBasicAlert() throws Exception {

//点击alert控件,弹出提示框

driver.findElement(By.xpath("//UIAButton[2]")).click();

Alert alert = driver.switchTo().alert();

//check if title of alert is correct

//验证提示框文字是否正确

assertEquals("Cool title this alert is so cool.", alert.getText());

alert.accept();

}

@Test

public void testBasicButton() throws Exception {

// 验证求和 button文字显示是否正确

WebElement button = driver.findElement(By.xpath("//UIAButton[1]"));

assertEquals("Compute Sum", button.getText());

}

@Test

public void testClear() throws Exception {

//验证编辑框输入清空后编辑框内容是否为空

WebElement text = driver.findElement(By.xpath("//UIATextField[1]"));

text.sendKeys("12");

text.clear();

assertEquals("", text.getText());

}

@Test

public void testHideKeyboard() throws Exception {

//编辑框输入文字

driver.findElement(By.xpath("//UIATextField[1]")).sendKeys("12");

//确认键盘是否弹出

WebElement button = driver.findElement(MobileBy.AccessibilityId("Done"));

assertTrue(button.isDisplayed());

//点击隐藏键盘

button.click();

}

@Test

public void testFindElementByClassName() throws Exception {

Random random = new Random();

//通过classname定位控件测试

WebElement text = driver.findElementByClassName("UIATextField");

int number = random.nextInt(MAXIMUM - MINIMUM + 1) + MINIMUM;

text.sendKeys(String.valueOf(number));

driver.findElementByClassName("UIAButton").click();

// is sum equal ?

//验证是否相等

WebElement sumLabel = driver.findElementByClassName("UIAStaticText");

assertEquals(String.valueOf(number), sumLabel.getText());

}

@Test

public void testFindElementsByClassName() throws Exception {

Random random = new Random();

//通过classname定位控件测试

WebElement text = (WebElement) driver.findElementsByClassName("UIATextField").get(1);

int number = random.nextInt(MAXIMUM - MINIMUM + 1) + MINIMUM;

text.sendKeys(String.valueOf(number));

driver.findElementByClassName("UIAButton").click();

// is sum equal ?

WebElement sumLabel = (WebElement) driver.findElementsByClassName("UIAStaticText").get(0);

assertEquals(String.valueOf(number), sumLabel.getText());

}

@Test

public void testAttribute() throws Exception {

Random random = new Random();

WebElement text = driver.findElement(By.xpath("//UIATextField[1]"));

//编辑框输入文字

int number = random.nextInt(MAXIMUM - MINIMUM + 1) + MINIMUM;

text.sendKeys(String.valueOf(number));

//验证控件的name,label,value等属性是否和设定的相同,name为IntegerA

assertEquals("IntegerA", text.getAttribute("name"));

assertEquals("TextField1", text.getAttribute("label"));

assertEquals(String.valueOf(number), text.getAttribute("value"));

}

@Test

public void testSlider() throws Exception {

//get the slider

//进度条控件

WebElement slider = driver.findElement(By.xpath("//UIASlider[1]"));

// 查看初始数据是否为50%

assertEquals("50%", slider.getAttribute("value"));

Point sliderLocation = getCenter(slider);

//拖动控件,从中心拖到初始位置

driver.swipe(sliderLocation.getX(), sliderLocation.getY(), sliderLocation.getX()-100, sliderLocation.getY(), 1000);

//验证控件是否归0,不归0?

assertEquals("0%", slider.getAttribute("value"));

}

@Test

public void testLocation() throws Exception {

//验证控件的位置是否为94,122?

WebElement button = driver.findElement(By.xpath("//UIAButton[1]"));

Point location = button.getLocation();

assertEquals(94, location.getX());

assertEquals(142, location.getY());

}

@Test

public void testSessions() throws Exception {

// ?

HttpGet request = new HttpGet("http://localhost:4723/wd/hub/sessions");

@SuppressWarnings("resource")

HttpClient httpClient = new DefaultHttpClient();

HttpResponse response = httpClient.execute(request);

HttpEntity entity = response.getEntity();

JSONObject jsonObject = (JSONObject) new JSONParser().parse(EntityUtils.toString(entity));

String sessionId = driver.getSessionId().toString();

assertEquals(jsonObject.get("sessionId"), sessionId);

}

@Test

public void testSize() {

//验证两个编辑框控件大小是否一致

Dimension text1 = driver.findElement(By.xpath("//UIATextField[1]")).getSize();

Dimension text2 = driver.findElement(By.xpath("//UIATextField[2]")).getSize();

assertEquals(text1.getWidth(), text2.getWidth());

assertEquals(text1.getHeight(), text2.getHeight());

}

Appium basic UI check cases_from sample的更多相关文章

  1. 基于Appium的UI自动化测试

    为什么需要UI自动化测试 移动端APP是一个复杂的系统,不同功能之间耦合性很强,很难仅通过单元测试保障整体功能.UI测试是移动应用开发中重要的一环,但是执行速度较慢,有很多重复工作量,为了减少这些工作 ...

  2. (appium+python)UI自动化_09_unittest批量运行测试用例&生成测试报告

    前言 上篇文章[(appium+python)UI自动化_08_unittest编写测试用例]讲到如何使用unittets编写测试用例,并执行测试文件.接下来讲解下unittest如何批量执行测试文件 ...

  3. 02- web UI测试与UI Check List

    UI英文是 user interface .所以UI测试就是用户界面测试. Web UI测试 用户界面测试:user interface testing,UI Testing指软件中的可见外观及其与用 ...

  4. 基于Python3 + appium的Ui自动化测试框架

    UiAutoTest 一.概要 数据驱动的Ui自动化框架 二.环境要求 框架基于Python3 + unittest + appium 运行电脑需配置adb.aapt的环境变量,build_tools ...

  5. (appium+python)UI自动化_07_app UI自动化实例【叮咚搜索加车为例】

    前言 初学UI自动化的小伙伴,在配置好appium+python自动化环境后,往往不知道如何下手实现自动化.小编在初期学习的时候也有这种疑惑,在此以叮咚买菜app-搜索加车为实例,展示下appium是 ...

  6. (appium+python)UI自动化_03_元素定位工具

    前言 在UI自动化过程中,需要对手机app上的元素进行定位,然后进一步编写自动化脚本操作app.定位元素首先需要定位工具来辅助查看页面元素.小编常用的定位工具有2种,分别是uiautomatorvie ...

  7. (appium+python)UI自动化_02_appium启动手机app

    前提:需先安装配置好appium+python自动化环境,已配置好环境的小伙伴可以参考以下步骤启动Android app,具体步骤如下: 一.USB连接手机 (1)手机USB连接电脑 (2)手机打开开 ...

  8. (appium+python)UI自动化_01_自动化环境搭建【MAC版】

    Appium简介 Appium是一个开源的.跨平台的测试框架,主要用来进行app UI自动化,适用于原生应用.混合应用和移动网页应用(H5页面).目前支持Python.JavaScript.Objec ...

  9. Python+appium+unittest UI自动化测试

    什么是UI自动化 自动化分层 单元自动化测试,指对软件中最小可测试单元进行检查和验证,一般需要借助单元测试框架,如java的JUnit,python的unittest等 接口自动化测试,主要检查验证模 ...

随机推荐

  1. SPOJ DIVSUM - Divisor Summation

    DIVSUM - Divisor Summation #number-theory Given a natural number n (1 <= n <= 500000), please ...

  2. 紫书第五章训练2 F - Compound Words

    F - Compound Words You are to find all the two-word compound words in a dictionary. A two-word compo ...

  3. NYOJ-78 圈水池,凸包裸模板!

    圈水池 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 刚做完HDU1392,就看到这个题,嗯,原代码改改就过了. 题意不多说了,会凸包的话很简单,不会也不难,这道题时限是4s ...

  4. [BZOJ2287]【POJ Challenge】消失之物(DP)

    传送门 f[i][j]表示前i个物品,容量为j的方案数c[i][j]表示不选第i个物品,容量为j的方案数两个数组都可以压缩到一维 那么f[i][j] = f[i - 1][j] + f[i - 1][ ...

  5. 刷题总结——作诗(bzoj2821)

    题目: Description 神犇SJY虐完HEOI之后给傻×LYD出了一题:SHY是T国的公主,平时的一大爱好是作诗.由于时间紧迫,SHY作完诗 之后还要虐OI,于是SHY找来一篇长度为N的文章, ...

  6. cf725F Family Photos

    Alice and Bonnie are sisters, but they don't like each other very much. So when some old family phot ...

  7. LightOJ1125 Divisible Group Sums

    Divisible Group Sums Given a list of N numbers you will be allowed to choose any M of them. So you c ...

  8. 修改系统dpi

    系统dpi设置不合理,会导致屏幕显示效果差.配置系统dpi设置ro.sf.lcd_density的值即可,不同项目设置位置不同,以高通为例:需要修改 项目/device/qcom/common/roo ...

  9. Vxlan简介

    1.为什么需要Vxlan 1.什么是VXLAN VXLAN(Virtual eXtensible LAN可扩展虚拟局域网),是一种mac in UDP技术.传统的二层帧被封装到了UDP的报文中,通过U ...

  10. 扰动法--*BZOJ3157: 国王奇遇记

    求$\sum_{i=1}^ni^mm^i$.$n \leq 1e9,m \leq 200$. 其实我也不知道这东西为啥叫“扰动法”,大概是在黑暗的边缘试探?就是那种,人家再多一点就被您看破了,然后您就 ...