我正在尝试开始使用selendroid和selenium用于Android虚拟设备,但我有一些问题。我安装了所有的java / android sdk / eclipse软件,我可以运行selenium chromedriver test。但是,当我尝试运行启动Android虚拟设备的测试时,它永远不会启动,应用程序也不会在http://localhost:4444/wd/hub/status
页面中列出。
我的通用测试如下。如果我在下面运行此代码,服务器将启动,我可以从状态页面看到我的本地主机数据但我的应用程序版本没有列出。如果我运行java -jar selendroid-standalone-0.11.0-with-dependencies.jar -app selendroid-test-app-0.11.0.apk
,那么我可以在状态页面中看到我的应用程序。我已经尝试过在虚拟设备上预先加载的应用程序,以及虚拟设备上已签名的应用程序,但都没有工作。
我在寻找解决方案的其他方面几乎处于死胡同。我花了3-4天寻找解决方案,但似乎无法找到它。目前在java项目中我只加载了selenium和selendroid .jar文件依赖项。我还没有安装任何jUnit或任何'测试'相关的
package testpackage;
import io.selendroid.SelendroidCapabilities;
import io.selendroid.device.DeviceTargetPlatform;
import org.junit.Assert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
public class testClass {
/**
* @param args
*/
public static void runSelendroidTest() throws Exception {
// specify test capabilities (your 'test environment')
SelendroidCapabilities capa = new SelendroidCapabilities("io.selendroid.testapp:0.11.0");
// explicitly state that we want to run our test on an Android API level 17 device
capa.setPlatformVersion(DeviceTargetPlatform.ANDROID17);
// explicitly state that we use an emulator (an AVD) for test execution rather than a physical device
capa.setEmulator(true);
// start a new WebDriver
WebDriver driver = new SelendroidDriver(capa);
// execute a very simple test
WebElement inputField = driver.findElement(By.id("my_text_field"));
Assert.assertEquals("true", inputField.getAttribute("enabled"));
inputField.sendKeys("Selendroid");
Assert.assertEquals("Selendroid", inputField.getText());
// quit testing
driver.quit();
}
}
答案 0 :(得分:0)
也许您想确定'DeviceTargetPlatform.ANDROID17'是否真的将您的设备定位为ANDROID17。那是当你运行测试时,检查日志。如果http://localhost:4444/wd/hub/status
适合您,请在那里检查您的设备目标。
之前我遇到过同样的问题,我只是发现我使用的是'ANDROID18'而不是ANDROID17。