Appium中部分api的使用方法
发布日期:2021-05-09 05:00:22 浏览次数:15 分类:博客文章

本文共 2629 字,大约阅读时间需要 8 分钟。

使用的语言是java,appium的版本是1.3.4,java-client的版本是java-client-2.1.0,建议多参考java-client-2.1.0-javadoc。

1.使用Driver,其已经继承了AppiumDriver

  
private AndroidDriver driver; @Beforepublic void setUp() throws Exception {    DesiredCapabilities capabilities = new DesiredCapabilities();    capabilities.setCapability("deviceName", "Android Emulator");    capabilities.setCapability("platformVersion", "4.4");    capabilities.setCapability("platformName", "Android");    capabilities.setCapability("appPackage", "com.android.settings");    capabilities.setCapability("appActivity", ".Settings");     driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),            capabilities);} @Afterpublic void tearDown() throws Exception {    driver.quit();}

 

 
 
2.截屏并保存至本地
 
//截屏并保存至本地File screen = driver.getScreenshotAs(OutputType.FILE);File screenFile = new File("d:\\screen.png");try {    FileUtils.copyFile(screen, screenFile); //commons-io-2.0.1.jar中的api} catch (IOException e) {    e.printStackTrace();}

 

 
 
 
3.push文件、pull文件
 
File file = new File("d:\\test.txt"); //test.txt内容为"test"String content = null;try {    content = FileUtils.readFileToString(file);} catch (IOException e) {    e.printStackTrace();} byte[] data = Base64.encodeBase64(content.getBytes());driver.pushFile("sdcard/test.txt", data); byte[] resultDate = driver.pullFile("sdcard/test.txt");System.out.println(new String(Base64.decodeBase64(resultDate))); //打印结果为"test"

 

4.
//获取当前界面的activity,可用于断言是否跳转到预期的activity
driver.currentActivity();

 

5.
//打开通知栏界面
driver.openNotifications();

6.//获取网络状态

int status = driver.getNetworkConnection().value;System.out.println(status); //设置网络状态driver.setNetworkConnection(new NetworkConnectionSetting(status));//或者driver.setNetworkConnection(new NetworkConnectionSetting(false, true, false));
//启动其他应用,跨APPdriver.startActivity("com.android.camera", ".CameraLauncher");//自动滑动列表driver.scrollTo("text");//或者driver.scrollToExact("text");   //安装APPdriver.installApp(appPath); //判断应用是否已安装driver.isAppInstalled("package name"); //拖动相机图标至日历图标位置new TouchAction(driver).longPress(driver.findElementByName("相机")).moveTo(driver.findElementByName("日历")).release().perform();    //锁屏driver.lockScreen(2); //判断是否锁屏driver.isLocked();
//发送按键事件
driver.sendKeyEvent(AndroidKeyCode.HOME);
<span style=
"color:#ff0000;"
> </span>
                
//通过uiautomator定位clickable属性为true的元素并点击
        
driver.findElementByAndroidUIAutomator(
"new UiSelector().clickable(true)"
).click();
         
        
//相同属性的元素使用List存放
        
List<webelement> elements = driver.findElementsByClassName(
"class name"
);
        
elements.get(
0
).click(); 
//点击List中的第一个元素
        
//tap,点击元素位置
        
driver.tap(
1
, driver.findElementByName(
"日期和时间"
), 
0
);</webelement>
 

 

 
 
上一篇:解决Eclipse左键无法查看maven第三方包的源代码,多图亲测可用【转】
下一篇:spring-表达式语言-SpEL【转】

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2025年04月14日 11时57分31秒