package appium_operate; import java.net.MalformedURLException; import java.net.URL; import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.remote.DesiredCapabilities; import org.testng.Assert; import org.testng.annotations.BeforeTest; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; import io.appium.java_client.android.AndroidDriver; /** * @author 李小卫 E-mail:yyymlxw@163.com @date 创建时间2018年2月11日上午10:30:02 */ public class CalcTest { AndroidDriver driver; @BeforeTest public void setUp() throws MalformedURLException{ DesiredCapabilities des = new DesiredCapabilities(); // des.setCapability("app", "c:\\"); des.setCapability( "platformName" , "Android" ); des.setCapability( "platformVersion" , "4.4" ); des.setCapability( "udid" , "192.168.43.101:5555" ); des.setCapability( "deviceName" , "s4" ); des.setCapability( "appPackage" , "com.android.calculator2" ); //com.android.contacts des.setCapability( "appActivity" , ".Calculator" ); //.activities.PeopleActivity des.setCapability( "unicodeKeyboard" , "True" ); des.setCapability( "resetKeyboard" , "True" ); des.setCapability( "newCommandTimeout" , "15" ); des.setCapability( "nosign" , "True" ); driver = new AndroidDriver( new URL( "http://127.0.0.1:4723/wd/hub" ),des); driver.manage().timeouts().implicitlyWait( 10 , TimeUnit.SECONDS); } @Test (enabled = false ) public void add() { driver.findElement(By.xpath( "//android.widget.Button[@text='5']" )).click(); driver.findElement(By.xpath( "//android.widget.Button[@text='+']" )).click(); driver.findElement(By.xpath( "//android.widget.Button[@text='8']" )).click(); driver.findElement(By.xpath( "//android.widget.Button[@text='=']" )).click(); String value = driver.findElement(By.xpath( "//android.widget.EditText[@class='android.widget.EditText']" )).getAttribute( "text" ); Assert.assertEquals(value, "13" ); } @Test (enabled = false ) public void sub() { driver.findElement(By.xpath( "//android.widget.Button[@text='1']" )).click(); driver.findElement(By.xpath( "//android.widget.Button[@text='0']" )).click(); driver.findElement(By.xpath( "//android.widget.Button[@text='-']" )).click(); driver.findElement(By.xpath( "//android.widget.Button[@text='8']" )).click(); driver.findElement(By.xpath( "//android.widget.Button[@text='=']" )).click(); String value = driver.findElement(By.xpath( "//android.widget.EditText[@class='android.widget.EditText']" )).getAttribute( "text" ); Assert.assertEquals(value, "2" ); } @Test (enabled = false ) public void mul() { driver.findElement(By.xpath( "//android.widget.Button[@text='5']" )).click(); driver.findElement(By.xpath( "//android.widget.Button[@text='×']" )).click(); driver.findElement(By.xpath( "//android.widget.Button[@text='8']" )).click(); driver.findElement(By.xpath( "//android.widget.Button[@text='=']" )).click(); String value = driver.findElement(By.xpath( "//android.widget.EditText[@class='android.widget.EditText']" )).getAttribute( "text" ); Assert.assertEquals(value, "40" ); } @DataProvider (name= "testdata" ) public Object[][] getData(){ return new Object[][]{{ "20" , "80" , "100" , "+" },{ "90" , "3" , "270" , "×" },{ "6" , "2" , "3" , "÷" }}; } @Test (dataProvider = "testdata" ) public void calcTestcase(String num1,String num2,String result,String calcType){ for ( char num:num1.toCharArray()){ driver.findElement(By.xpath( "//android.widget.Button[@text='" +String.valueOf(num)+ "']" )).click(); } driver.findElement(By.xpath( "//android.widget.Button[@text='" +calcType+ "']" )).click(); for ( char num:num2.toCharArray()){ driver.findElement(By.xpath( "//android.widget.Button[@text='" +String.valueOf(num)+ "']" )).click(); } driver.findElement(By.xpath( "//android.widget.Button[@text='=']" )).click(); String value = driver.findElement(By.xpath( "//android.widget.EditText[@class='android.widget.EditText']" )).getAttribute( "text" ); Assert.assertEquals(value, result); } } |