Java 使用Appium脚本自动化android仿真器和浏览器

Java 使用Appium脚本自动化android仿真器和浏览器,java,android,eclipse,selenium,appium,Java,Android,Eclipse,Selenium,Appium,使用appium在android emulator上执行自动化测试。emulator中的浏览器通过代码自动打开时未打开。我已经复制了下面的代码,请查看并帮助我。提前谢谢 package report; import java.net.MalformedURLException; import java.net.URL; import java.util.List; import java.util.concurrent.TimeUnit; import javax.swing.JOptio

使用appium在android emulator上执行自动化测试。emulator中的浏览器通过代码自动打开时未打开。我已经复制了下面的代码,请查看并帮助我。提前谢谢

package report;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import java.util.concurrent.TimeUnit;  

import javax.swing.JOptionPane;

import org.openqa.selenium.By;  
import org.openqa.selenium.WebDriver;  
import org.openqa.selenium.WebElement;  
import org.openqa.selenium.firefox.FirefoxDriver;  
import org.openqa.selenium.firefox.FirefoxProfile;  
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.annotations.BeforeTest;  
import org.testng.annotations.Test;  


public class emulator {
WebDriver driver;

public void setUp() throws MalformedURLException 
{
DesiredCapabilities capabilities= new DesiredCapabilities();
capabilities.setCapability(CapabilityType.BROWSER_NAME,"browser");
capabilities.setCapability(CapabilityType.VERSION,"4.4");
capabilities.setCapability(CapabilityType.PLATFORM,"windows");
capabilities.setCapability("platformName","Android");
capabilities.setCapability("devices","Android");
capabilities.setCapability("avd","nexus");
capabilities.setCapability("deviceName","");
capabilities.setCapability("appPackage", "com.android.browser");
capabilities.setCapability("appActivity",    "com.android.browser.BrowserActivity");
driver=new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
}



public void cal(){
driver.get("http://www.google.com");

}
public static void main(String[] args) throws MalformedURLException
{
emulator a=new emulator();
a.setUp();
a.cal();           
}
}

锁定屏幕将停用程序的其他脚本。因此,我尝试手动打开模拟器并禁用锁屏(设置->安全->无)。然后关闭模拟器。现在自动打开emulator并运行脚本

public void setUp(int p) throws MalformedURLException {
    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability(CapabilityType.BROWSER_NAME, "browser");
    capabilities.setCapability(CapabilityType.VERSION, "");
    capabilities.setCapability(CapabilityType.PLATFORM, "windows");
    capabilities.setCapability("platformName", "Android");
    capabilities.setCapability("udid", "emulator-" + p);
    capabilities.setCapability("devices", "Android");
    capabilities.setCapability("avd", "Nexus7");
    capabilities.setCapability("deviceName", "");
    capabilities.setCapability("appPackage", "com.android.browser");
    capabilities.setCapability("appActivity", "com.android.browser.BrowserActivity");
    driver = new RemoteWebDriver(new URL("http://127.0.0.1:" + this.port + "/wd/hub"), 
             capabilities);
}

在使用移动浏览器时,我们不需要传递所有上述所需的功能,如apppackage和AppActivity。您可以查看所需功能的详细信息@

您遇到了什么错误或异常?我遇到了此错误“操作在超时过期之前未完成。(原始错误:超时:Adb命令在30秒后超时”是的,这是因为默认android emulator打开和加载时间太长。请尝试使用real device或Genymotion emulator。我可以自动打开我的emulator,但脚本无法按照我的要求启动,即浏览器未打开。正如我所说的,默认模拟器太慢。