如何使用 appium 在 android 上自动化浏览器? [英] How can I use appium to automate browser on android?

查看:41
本文介绍了如何使用 appium 在 android 上自动化浏览器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想用appium在android手机上自动浏览器,但我不知道如何设置功能.<​​/p>

首先,我在我的 Android 设备上的开发者选项中启用了 USB 调试.

其次,adb 运行良好,我可以看到设备 ID.

第三,我从Appium for windows启动Appium.exe,用JAVA写了一些代码,但是不知道Android浏览器怎么设置能力.

公共类测试{私有 WebDriver 驱动程序;@前public void setUp() 抛出异常 {DesiredCapabilities 能力 = 新的 DesiredCapabilities();//------------我不知道如何设置能力------------//capability.setCapability(CapabilityType.VERSION, "2.3.7");Capability.setCapability(CapabilityType.PLATFORM, "WINDOWS");//--------------------------------------------------------------//driver = new SwipeableWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);}@测试public void testcase_001() 抛出异常{driver.get("http://www.google.com");WebDriverWait wait = new WebDriverWait(driver, 30);wait.until(ExpectedConditions.presenceOfElementLocated(By.id("lst-ib")));WebElement 关键字 = driver.findElement(By.name("lst-ib"));关键字.sendKeys("appium");driver.findElement(By.id("btnK")).click();线程睡眠(5000);}@后公共无效撕裂()抛出异常{驱动程序退出();}公共类 SwipeableWebDriver 扩展 RemoteWebDriver 实现 HasTouchScreen {私人 RemoteTouchScreen 触摸;公共 SwipeableWebDriver(URL 远程地址,能力所需能力){超级(远程地址,所需的能力);touch = new RemoteTouchScreen(getExecuteMethod());}公共触摸屏 getTouch() {返回触摸;}}}

非常感谢.

解决方案

使用 Android Driver 试试这个代码:

import io.appium.java_client.android.AndroidDriver;公共类测试{私人安卓驱动程序;@前public void setUp() 抛出异常 {DesiredCapabilities 能力 = 新的 DesiredCapabilities();capability.setCapability("deviceName", "MOTO G 2");capabilities.setCapability("platformName", "Android");capability.setCapability(CapabilityType.BROWSER_NAME, "Chrome");capabilities.setCapability("platformVersion", "5.0.2");capabilities.setCapability("appPackage", "com.android.chrome");capabilities.setCapability("appActivity","com.google.android.apps.chrome.ChromeTabbedActivity");driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);}@测试public void testcase_001() 抛出异常{driver.get("http://www.google.com");WebElement 关键字 = driver.findElementByName("q");关键字.sendKeys("appium");driver.findElement(By.id("btnK")).click();线程睡眠(5000);}@后公共无效撕裂()抛出异常{驱动程序退出();}

注意:使用 selenium 版本 2.48.2(最新版本)可以使 android 驱动程序运行没有任何错误.

I want to use appium to automate browser on android phone,but I don't know how to set the capability.

First, I have enabled USB debugging on my Android device in the developer options.

Second, adb was working well, i can see the device id.

Third, I started Appium.exe from Appium for windows and writed some code by JAVA, but I don't know how to set the capability on Android browser.

public class Test {
    private WebDriver driver;

    @Before
    public void setUp() throws Exception {
        DesiredCapabilities capabilities = new DesiredCapabilities();
        //------------I don't know how to set the capability------------//
        capabilities.setCapability(CapabilityType.VERSION, "2.3.7");
        capabilities.setCapability(CapabilityType.PLATFORM, "WINDOWS");
        //--------------------------------------------------------------//
        driver = new SwipeableWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
    }

    @Test
    public void testcase_001() throws Exception{
        driver.get("http://www.google.com");
        WebDriverWait wait = new WebDriverWait(driver, 30);
        wait.until(ExpectedConditions.presenceOfElementLocated(By.id("lst-ib")));
        WebElement keyword = driver.findElement(By.name("lst-ib"));
        keyword.sendKeys("appium");
        driver.findElement(By.id("btnK")).click();
        Thread.sleep(5000);
     }

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

    public class SwipeableWebDriver extends RemoteWebDriver implements HasTouchScreen {
        private RemoteTouchScreen touch;
        public SwipeableWebDriver(URL remoteAddress, Capabilities desiredCapabilities) {
            super(remoteAddress, desiredCapabilities);
            touch = new RemoteTouchScreen(getExecuteMethod());
        }
        public TouchScreen getTouch() {
            return touch;
        }
    }
}

Many thanks.

解决方案

Try this code using Android Driver:

import io.appium.java_client.android.AndroidDriver;

public class Test {
private AndroidDriver;

@Before
public void setUp() throws Exception {
    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability("deviceName", "MOTO G 2");
    capabilities.setCapability("platformName", "Android");
    capabilities.setCapability(CapabilityType.BROWSER_NAME, "Chrome");
    capabilities.setCapability("platformVersion", "5.0.2");
    capabilities.setCapability("appPackage", "com.android.chrome");
    capabilities.setCapability("appActivity","com.google.android.apps.chrome.ChromeTabbedActivity");
    driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
}

@Test
public void testcase_001() throws Exception{
    driver.get("http://www.google.com");

    WebElement keyword = driver.findElementByName("q");
    keyword.sendKeys("appium");
    driver.findElement(By.id("btnK")).click();
    Thread.sleep(5000);
 }

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

Note: Use selenium version 2.48.2 (latest version) to make the android driver run without any error.

这篇关于如何使用 appium 在 android 上自动化浏览器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆