Appium+Java笔记 查找屏幕外指定控件 ,操作seekbar

主宰稳场 提交于 2019-11-29 04:54:32

试验方法记录:

使用Java+appium,查找屏幕外控件,控制seekbar移动。

1.查找并点击Setting中的“辅助功能”;driver.findElementByAndroidUIAutomator

2.滑动“显示”中的seekbar ;driver.swipe(startX, startY, endX, endY, duration)

试验用的老平板,这种系统应用运行的比第三方应用流畅很多。

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;

import java.net.MalformedURLException;
import java.net.URL;

import io.appium.java_client.android.AndroidDriver;

public class TestSettingsDemo {
    public AndroidDriver<?> appiumDriver;
    @Before
    public void setUp() throws MalformedURLException {
        DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
        desiredCapabilities.setCapability("platformVersion","5.1.1");
        desiredCapabilities.setCapability("platformName","Android");
        desiredCapabilities.setCapability("deviceName","G0B0ME036482001L");
        desiredCapabilities.setCapability("appPackage","com.android.settings");
        desiredCapabilities.setCapability("appActivity",".Settings");
        desiredCapabilities.setCapability("noReset","true");
        appiumDriver=new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"),desiredCapabilities);
    }
    @Test
    public void test_scroll(){
        //滚动查找“辅助功能”并点击进去
        appiumDriver.findElementByAndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true)).scrollIntoView(new UiSelector().text(\"辅助功能\"))").click();
    }
    @Test
    public void test_seekBar(){
        appiumDriver.findElement(By.xpath("//android.widget.TextView[@text='显示']")).click();
        WebElement seekBar = appiumDriver.findElement(By.id("com.android.settings:id/f_seekbar"));
        //获取控件Y坐标
        int yNow=seekBar.getLocation().getY();
        //获取控件宽度,这里是因为等于屏幕宽才在之后当坐标用
        int xStart=seekBar.getSize().width;
        appiumDriver.swipe(xStart/4,yNow,3*xStart/4,yNow,3000);
    }

    @After
    public void tear_down(){
        appiumDriver.quit();
    }
}

效果记录:

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!