Я настроил на устройстве два устройства Android. Одним из них является реальное устройство Android (ZX1D63R33N) [Moto G Second Gen - с 5.0.2 - API 21] и эмулятор Android GenyMotion [с 5.1.1 с API 22].[Selendroid] [Java-клиент]: запуск скриптов на конкретном устройстве/эмуляторе
Сценарий успешно выполняется на обоих устройствах. Но я не могу контролировать выполнение, в котором устройство должно выполнить выполнение.
Считайте, что я подключаю свое настоящее устройство для Android и запускаю эмулятор Genymotion. то устройство adb даст следующий результат.
C:\Users\Ramkumar>adb devices
List of devices attached
ZX1D63R33N device
192.168.56.101:5555 device
Я установил следующие SelendoidCapabilities в своем скрипте.
WebDriver driver; //AppiumDriver driver
//new SelendroidCapabilities.
SelendroidCapabilities selendroidCapabilities = SelendroidCapabilities.emulator(DeviceTargetPlatform.ANDROID22, "Android Emulator");
selendroidCapabilities.setEmulator(true);
selendroidCapabilities.setCapability("browserName", "Chrome");
selendroidCapabilities.setCapability("device", "Android");
selendroidCapabilities.setCapability("version", "5.1");
selendroidCapabilities.setCapability("deviceName", "192.168.56.101:5555");
selendroidCapabilities.setCapability("platformName", "Android");
//capabilities.setCapability("app", app.getAbsolutePath());
//capabilities.setCapability("appPackage","com.android.chrome");
driver = new SelendroidDriver(new URL("http://localhost:4723/wd/hub"), selendroidCapabilities);
driver.get("https:google.com");
Thread.sleep(20000);
driver.quit();
Когда я выполнить сценарий, его получение выполняется в phone.It открывается как хром браузер и открыть страницу Google. Независимо от того, я установил эмулятор как истинный и создал SelendroidCapabilities с emualtor как опцией.
Даже когда я закрываю свой эмулятор GenyMotion и подключен к реальному устройству Android, а команда adb device также отображает только одно реальное подключенное устройство. Затем я также вижу, что его выполнение выполняется в реальном устройстве андроида.
C:\Users\Ramkumar>adb devices
List of devices attached
ZX1D63R33N device
И наоборот, это же проблема. если я начать реальное устройство первого и второго GenyMotion emualtor, то команда ADB устройство дает выход в
C:\Users\Ramkumar>adb devices
List of devices attached
ZX1D63R33N device
192.168.56.101:5555 device
Имея следующие SelendroidCapabilities не работает скрипт на реальном устройстве Android, но на GenyMotion emualtor.
SelendroidCapabilities selendroidCapabilities = SelendroidCapabilities.device(DeviceTargetPlatform.ANDROID22, "Android Emulator");
selendroidCapabilities.setEmulator(false);
Просьба указать, не хватает ли какой-либо конфигурации. Спасибо заранее.
С уважением, Рамкумар
Спасибо за ваш ответ, я попробовал то же, о чем вы упоминали, но все же он всегда выбирает первые устройства, поступающие из команды adb devices. – Ramkumar
'SelendroidCapabilities selendroidCapabilities = new SelendroidCapabilities(); selendroidCapabilities.setSerial ("192.168.56.101:5555"); selendroidCapabilities.setCapability («версия», «5.1»); selendroidCapabilities.setCapability ("deviceName", "192.168.56.101:5555"); selendroidCapabilities.setCapability ("browserName", "chrome") ' – Ramkumar
Ниже приведены журналы в узле appium.js info: [debug] Попытка найти подключенное устройство Android info: [debug] Подключение подключенных устройств ... info : [debug] Выполнение cmd: C: \ Users \ Ramkumar \ AppData \ Local \ Android \ android-sdk \ platform-tools \ adb.exe устройства ** информация: [debug] подключено 2 устройства (ов) информация: Найдено устройство ZX1D63R33N info: [debug] Установка идентификатора устройства на ZX1D63R33N ** – Ramkumar