Appium——主从控制执行

1.客户端(Eclipse)机器A, 服务端(appium、Genymotion)机器B

2.设置Appium,Server Address为192.168.17.123,重新启动Appium

3.在客户端机器A浏览器中输入:http://192.168.17.123:4723/wd/hub,

说明配置成功。

JAVA代码:

其中driver= new AndroidDriver<WebElement>(new URL("http://192.168.17.123:4723/wd/hub"), capabilities);

capabilities.setCapability("app", "F:\\ContactManager.apk");F:\\ContactManager.apk为服务端APK的路径

public class AppiumTest {

    public AndroidDriver<WebElement> driver;

      @BeforeClass
      public void startTest() throws MalformedURLException{

         // File classpathRoot= new File(System.getProperty("user.dir"));
         // File appDir= new File(classpathRoot, "res/app");
        //  File app= new File(appDir, "ContactManager.apk");
          DesiredCapabilities capabilities= new DesiredCapabilities();
          capabilities.setCapability("automationName", "Appium");
          capabilities.setCapability("platformName","Android");
          capabilities.setCapability("deviceName","Android Emulator");
          capabilities.setCapability("platformVersion", "4.4.2");
          // 根据这个app capabilities,Appium会在启动测试之前安装好app到设备
          capabilities.setCapability("app", "F:\\ContactManager.apk");
          //设置安卓app的包名的capability,告诉appium你要运行哪个app。
          capabilities.setCapability("appPackage", "com.example.android.contactmanager");
          capabilities.setCapability("appActivity", ".ContactManager");
          driver= new AndroidDriver<WebElement>(new URL("http://192.168.17.123:4723/wd/hub"), capabilities);
      }

  @Test
  public void addContact() {
     // WebElement el= driver.findElement(By.xpath(".//*[@text=‘Add Contact‘]"));
      WebElement el = driver.findElementByAndroidUIAutomator("new UiSelector().text(\"Add Contact\")");
      el.click();
      List<WebElement> textFieldsList= driver.findElementsByClassName("android.widget.EditText");
      textFieldsList.get(0).sendKeys("Some Name");
      textFieldsList.get(2).sendKeys("[email protected]");
      driver.swipe(100, 500, 100, 100, 2);
      driver.findElementByXPath(".//*[@text=‘Save‘]").click();

  }

  @AfterClass
  public void afterClass() {
      driver.quit();
  }

}
时间: 2024-08-24 15:45:53

Appium——主从控制执行的相关文章

android模拟器(genymotion)+appium+python 框架执行基本原理(目前公司自己写的)

android模拟器(genymotion)+appium+python 框架执行的基本过程: 1.Push.initDate(openid)方法     //业务数据初始化 1.1   v5db.push_to_db(filename, openid) //通过执行filename文件里sql语句,使业务数据初始化,比如物理删除订单,以确保不会因为数据原因导致自动化执行失败 2.Android.Android.init_Android(self)  //初始化Android模拟器 class

java控制执行流程--thinking in java学习

常用的控制执行流程有if-else:迭代while,do-while,for,foreach:return;break,continue;和break,continue配合使用的标签:switch:在过thinking in java这章的过程中,有两个地方又重新认识了一下,来和大家分享.1.return 有两个作用,1.设定一个方法的返回值:2.退出当前方法.因此任何方法都可以使用return语句,在void方法中使用return便是使用return的退出当前方法的作用.而且在返回void的方

Thinking In Java笔记(第四章 控制执行流程)

第四章 控制执行流程 Java中使用了C的所有流程控制语句.在Java中涉及的关键字包括if-else,while,do-while,for,return,break,continue以及选择语句switch.然而Java不支持goto语句(该语句引起了许多的反对意见),但是Java仍然可以类似goto那样跳转. 4.1 True和False 所有的条件语句都利用条件表达式的真假来决定执行的路径.Java中不允许我们将一个数字作为boolean值使用,虽然C和C++中是允许的("非零"

《汇编语言》-- 控制执行流程

参考文献: <汇编语言程序设计> ............................................................................................................................................................................................... 控制执行流程学习,程序中遇到无条件分支时,指令指针自动跳转到另一个位置,可以使用

Java编程思想---第四章 控制执行流程

第四章  控制执行流程 就像有知觉的生物一样,城西必须在执行过程中控制它的世界并作出选择,在Java中,你要使用执行控制语句来作出选择. 4.1 true和false 所有的条件语句都利用条件表达式的真假来决定执行路径.如a==b,它用操作符==来判断a的值是否等于b的值,返回一个true或false. 4.2 if-else if-else语句是控制程序流程的最基本形式,其中else是可选的,所以可以按下面的两种形式来使用: if(Boolean-expression) statement 或

[Thinking in Java]第4章-控制执行流程

4.1 if-else 4.2 迭代 4.3 Foreach语法 4.4 return 4.5 break和continue 4.6 switch 目录 4.1 if-else if-else中的else是可选的,有两种形式使用if: if (Boolean-expression) statement 或 if (Boolean-expression) statement1 else statement2 需要注意的是,Boolean-expression不能是数字,其实后面的while,for

JAVA基础之控制执行流程

条件语句 仅仅包含if if(Boolean-expression) statement 包含if-else if(Boolean-expression) statement else statement 包含else if多个条件等自由组合方式 if(Boolean-expression) statement else if(Boolean-expression) statement else if(Boolean-expression) statement ... 嵌套if else if(

四、控制执行流程

一.逗号操作符可以在for语句内定义多个变量,但是他们必须是相同的类型. 在控制表达式的初始化和步进控制部分,可以用一系列有逗号分隔的语句,而且那些语句均会独立执行. 二.foreach 1 float f[] = new float[10]; 2 3 for(float x: f){ 4 //... 5 } 上面的代码定义了一个float类型的变量x,继而将每一个f的元素赋值给x 此外,foreach还可以用于任何Iterable 对于下面的for语句,foreach则不能发挥作用 1 for

《JAVA编程思想》学习笔记——第四章 控制执行流程

true和false 所有条件语句都利用条件表达式的真或假来决定执行路径. if-else if (Boolean-expression) statement 或 if (Boolean-expression) statement else statement 迭代 while, do-while和for来控制循环,有时将他们划分为迭代语句(iteration statement).语句会重复执行,直到起控制作用的布尔表达式(Booleanexpression)得到"假"的结果为止.