通过Appium Desktop实现录制功能并导出自动化脚本

1、我们进入下面这个界面

 图中红色标记1为 “top by coordinates” 按钮, 这是一种通过坐标定位元素的方式。
 图中红色标记2为 “Start Recording” 按钮, 选中表示处理录制状态。

通过Appium Desktop实现录制功能并导出自动化脚本_第1张图片

 

2、点击“top by coordinates” 按钮,再点击 “Start Recording” 按钮,我们就可以在左则的 App 界面上点点点了。 脚本会随着我们的点击生成。 

 通过Appium Desktop实现录制功能并导出自动化脚本_第2张图片
3、选择导出的脚本语言,如下所示,可以选择如下5种

 通过Appium Desktop实现录制功能并导出自动化脚本_第3张图片

 

 
4、我们选择导出java语言

 图中红色标记1为 我们选择java-JUnit格式的代码
 图中红色标记2为 生成完整的脚本
 图中红色标记3为 复制
 通过Appium Desktop实现录制功能并导出自动化脚本_第4张图片
5、最终我们得到如下代码

 

import io.appium.java_client.MobileElement;
import io.appium.java_client.android.AndroidDriver;
import junit.framework.TestCase;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.net.MalformedURLException;
import java.net.URL;
import org.openqa.selenium.remote.DesiredCapabilities;

public class SampleTest {

  private AndroidDriver driver;

  @Before
  public void setUp() throws MalformedURLException {
    DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
    desiredCapabilities.setCapability("platformVersion", "10");
    desiredCapabilities.setCapability("deviceName", "9b2157cfaedb");
    desiredCapabilities.setCapability("platformName", "android");
    desiredCapabilities.setCapability("automationName", "UiAutomator2");
    desiredCapabilities.setCapability("appActivity", "com.android.settings.Settings");
    desiredCapabilities.setCapability("appPackage", "com.android.settings");
    desiredCapabilities.setCapability("noReset", "true");
    desiredCapabilities.setCapability("ensureWebviewsHavePages", true);

    URL remoteUrl = new URL("http://127.0.0.1:4723/wd/hub");

    driver = new AndroidDriver(remoteUrl, desiredCapabilities);
  }

  @Test
  public void sampleTest() {
    (new TouchAction(driver)).tap(74, 1117).perform()
    (new TouchAction(driver)).tap(170, 629).perform()
  }

  @After
  public void tearDown() {
    driver.quit();
  }
}


6、分析脚本

我们发现它生成的控件定位都是以坐标形式的, 但是我们知道坐标定位是不可靠的,因为它会受屏幕大小和分辨率的影响 。不过呢,个人认为也是有可以借鉴之处,至少对Appium有了一个简单的认识
 

你可能感兴趣的:(Appium自动化,Java,junit,java,开发语言)