Как я могу использовать selenium или appium для автоматизации браузера chrome на android?

Я пытаюсь автоматизировать браузер Android Chrome на устройстве android (не только webview или другой браузер, но браузер Chrome). Я думал, что это возможно, перейдя по этой ссылке https://sites.google.com/a/chromium.org/chromedriver/getting-started/getting-started---android но вместо этого он автоматизирует мой браузер chrome для ПК.

Я также пробовал Appium, но ничего не происходит после журнала:

debug: executing: adb install C:UsershiddenDownloadsAppiumForWindows-0.14.2
Appiumnode_modulesappiumbuildunlock_apkunlock_apk-debug.apk

и когда я пытаюсь получить доступ к информации браузер, я получаю это:

info: Responding to client with error: {"status":13,"value":{"message":"An unkno
wn server-side error occurred while processing the command.","origValue":"Did no
t successfully proxy server command"},"sessionId":"666c9e4f-7653-487a-b299-959d4
000ca79"}

у меня есть chromedriver.exe в моем пути переменной среды весь журнал выглядит следующим образом:

info: Welcome to Appium v0.14.2
info: Appium REST http interface listener started on 127.0.0.1:5555
   info  - socket.io started
debug: Appium request initiated at /wd/hub/session
debug: Request received with params: {"desiredCapabilities":{"platform":"ANDROID
","app":"chrome","browserName":"android","browserConnectionEnabled":true,"app-pa
ckage":"com.android.chrome","device":"android","rotatable":true,"app-activity":"
com.google.android.apps.chrome.Main","takesScreenshot":true,"version":""}}
info: Looks like we want chrome on android
info: Creating new appium session 666c9e4f-7653-487a-b299-959d4000ca79
info: Ensuring Chromedriver exists
debug: Pushing unlock helper app to device...
debug: executing: adb install C:UsershiddenDownloadsAppiumForWindows-0.14.2
Appiumnode_modulesappiumbuildunlock_apkunlock_apk-debug.apk
warn:  killed=false, code=1, signal=null
debug: Appium request initiated at /wd/hub/status
debug: Request received with params: {}
debug: Proxying command to 127.0.0.1:9515
info: Making http request with opts: {"url":"http://127.0.0.1:9515/wd/hub/status
","method":"GET"}
info: Responding to client with error: {"status":13,"value":{"message":"An unkno
wn server-side error occurred while processing the command.","origValue":"Did no
t successfully proxy server command"},"sessionId":"666c9e4f-7653-487a-b299-959d4
000ca79"}
GET /wd/hub/status 500 1014ms - 238b
POST /wd/hub/session 200 31311ms

спасибо.

3 ответов


debug: выполнение: установка adb C:\Users\hidden\Downloads\AppiumForWindows-0.14.2\ Appium\node_modules\appium\build\unlock_apk\unlock_apk-отладка.apk

Если здесь ничего не происходит, вы должны снова перезапустить эмулятор ARM и сервер appium/chromedriver. Я сталкивался с этим несколько раз и много раз замечал, что adb отключается и теряет связь. Если я перезапущу abd, все начнет работать. Это просто команда adb для установки apk, это должно занять время в зависимости от размера apk, но не много.

public static void main(String[] args) throws MalformedURLException{
    DesiredCapabilities  capabilities = new DesiredCapabilities();
    capabilities.setCapability("device","Android");
    capabilities.setCapability("app", "Chrome");
    capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
    capabilities.setCapability(CapabilityType.VERSION, "4.3");
    capabilities.setCapability(CapabilityType.PLATFORM, "WINDOWS");
    WebDriver driver = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
    driver.get("http://www.yahoo.com");
}

у меня есть этот кусок кода, который хорошо работает на appium, автоматизируя браузер Android chrome. В приведенном выше журнале chromedriver не запущен успешно, поэтому браузер не автоматизирован. У меня есть журнал appium, который автоматизирует браузер chrome: enter image description here Кроме того, каждая комбинация ChromeDriver и Chrome APK не работает. Я боролся с дней и выяснили, что: Драйвер Chrome 2.3 и Chrome APK 29.xxx совместимы. Chrome драйвер 2.9 / 2.8 и Chrome APK 30.xx или 31.ХХ не работают.

Относительно Только ChromeDriver: Ссылка chromium, которую вы упомянули, автоматизирует браузер ПК, если вы не установили эту возможность. Что-то вроде этого:--4-->

DesiredCapabilities capabilities=new DesiredCapabilities();//DesiredCapabilities.chrome();
    ChromeOptions options=new ChromeOptions();
    options.setExperimentalOptions("androidPackage", "com.android.chrome");
    capabilities.setCapability(ChromeOptions.CAPABILITY, options);

вы должны установить эту возможность, если вы просто используете chromedriver (а не appium). Я работаю над этим, но не могу найти возможности. Также вам придется запустить ChromDriver себя по команде promt, который будет слушать в порту 9515 для любой автоматизации.


1) Прочитайте журналы appium и посмотрите, к какой версии драйвера chrome он относится. 2) Проверьте Онлайн для последней версии chromedriver. На сегодняшний день последняя версия 2.23. Скачать для Windows и распаковать его http://chromedriver.storage.googleapis.com/index.html?path=2.23/ 3) Обновление Appium (последнее сегодня-1.4.16.1) Теперь goto это место, Файлы C:\Program (х86)\сайта Appium\папки node_modules\сайта Appium\папки node_modules\сайта Appium-chromedriver\chromedriver\выиграть

и вставить в chromedriver.exe вот.(заменить старый)

4)

    public AndroidDriver<AndroidElement> startChrome() {
        DesiredCapabilities capabilities = new DesiredCapabilities();

        capabilities.setCapability("deviceName", "AndroidDevice");
        capabilities.setCapability("newCommandTimeout", 180);
        capabilities.setCapability("appActivity", "com.google.android.apps.chrome.Main");

        try {
            driver = new AndroidDriver<>(new URL(appiumURL), capabilities);
driver.get("google.com")
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }       return driver;
    }

5) в случае, если это не работает, убедитесь, чтобы проверить в журналах appium, если его указывая на обновленную версию chrome


сначала проверьте, что ваше мобильное устройство связано с браузером chrome. Введите следующую команду в url веб-браузера

chrome://inspect/devices#devices

Это покажет список подключенных устройств.

затем установите необходимые возможности.

Ниже приведен код, работающий для меня:

public void setUp() {
    File app = new File("./TestingAPK/app-release-v3.1.0-c20170201.apk");
    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability(CapabilityType.BROWSER_NAME, "Chrome");
    capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, MobilePlatform.ANDROID);
    capabilities.setCapability("deviceName", "emulator-5554");
    capabilities.setCapability("unicodekeyboard", true);
    capabilities.setCapability("resetkeyboard", true);
    capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "21");
    capabilities.setCapability("appPackage", "app.mangalam.billboy");
    capabilities.setCapability("appActivity", "app.mangalam.billboy.main.SplashActivity");

    capabilities.setCapability("app", app.getAbsolutePath());
    try {
        driver = new AndroidDriver < > (new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
    } catch (MalformedURLException e) {
        e.printStackTrace();
    }
    driver.manage().timeouts().implicitlyWait(90, TimeUnit.SECONDS);
}