Selendroid не запускает виртуальное устройство

Я пытаюсь начать работу с selendroid и selenium для виртуальных устройств Android, но у меня есть несколько проблем. У меня установлено все программное обеспечение java/android sdk/eclipse, и я могу нормально запускать тесты selenium chromedriver. НО, когда я пытаюсь запустить тест, который запускает виртуальное устройство 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();

    }

}

person user616    schedule 20.10.2014    source источник


Ответы (1)


возможно, вы хотите убедиться, что «DeviceTargetPlatform.ANDROID17» действительно нацелен на ваше устройство как ANDROID17. То есть, когда вы запускаете свой тест, проверьте журнал. Если http://localhost:4444/wd/hub/status работает для вас, пожалуйста, проверьте целевое устройство там.

У меня была такая же проблема раньше, и я только что понял, что использую «ANDROID18», а не ANDROID17.

person jemuzu    schedule 21.10.2014
comment
Да, на моей странице статуса указано ANDROID17 {"value":{"os":{"name":"Windows 7","arch":"amd64","version":"6.1"},"build":{"browserName":"selendroid","version":"0.11.0"},"supportedDevices":[{"emulator":true,"screenSize":"WSVGA","avdName":"Test","platformVersion":"17"}],"supportedApps":[{"mainActivity":"io.selendroid.androiddriver.WebViewActivity","appId":"io.selendroid.androiddriver:0.11.0","basePackage":"io.selendroid.androiddriver"}]},"status":0} - person user616; 21.10.2014
comment
Вы запускаете свой тест с «уже запущенным» эмулятором или нет? - person jemuzu; 22.10.2014
comment
Я пробовал оба способа, эмулятор работает и эмулятор не работает. В обоих случаях я получаю тот же результат - person user616; 22.10.2014