Appium: можно ли автоматизировать веб-страницу в браузере Chrome для Android?

Я хотел бы использовать Appium для запуска браузера Chrome на моем Android-устройстве и поиска элементов на определенной веб-странице. Можно ли это сделать? Если так, то как?

Спасибо.

Виктор

3 ответа

Решение

Пока платформа не указана, я отвечу, используя Windows, Visual Studio 2013 и.NET Framework 4.5.

Среда:

  1. Установите Android SDK или Visual Studio 2015 Preview. Это необходимо для того, чтобы Appium мог использовать инструменты Android SDK для работы с эмулятором или реальными устройствами.

  2. Загрузите последнюю версию Appium. Не нужно устанавливать. Работает сразу после разархивирования.

  3. В настройках Appium:
    Установите флажок "Использовать браузер" и выберите Chrome.
    Проверьте опцию "SDK Path" и установите путь.

  4. Обновите Chrome Driver (потому что это не всегда последняя версия в пакете Appium).
    Относительный путь к драйверу chrome в appium pack \node_modules\appium\build\chromedriver\windows

  5. Для запуска тестов на вашем устройстве Adnroid вы должны активировать режим отладки по USB и подключить его к ПК.

Кодирование:

  1. Создайте новый проект модульного тестирования в Visual Studio 2013:
    Файл → Новый проект → Visual C# → Тест → Проект модульного теста
    Делая это, вы будете использовать для тестового фреймворка MSTest.exe
    Есть несколько других, если хотите, NUnit, например.

  2. В обозревателе решений:
    Щелкните правой кнопкой мыши имя проекта → Управление пакетами NuGet → Веб-драйвер Serch Appium → Добавить в проект
    Это нужно, чтобы вы могли веб-драйвер.

  3. В созданном проекте установите желаемые возможности.
    Я использую следующее:

    public void InitializeDriver()
    {
        Console.WriteLine("Connecting to Appium server");
        _capabilities = new DesiredCapabilities();
    
        _capabilities.SetCapability("deviceName", "Nexus One");
        _capabilities.SetCapability("newCommandTimeout", "300");
        _capabilities.SetCapability(CapabilityType.BrowserName, "Chrome");
        _capabilities.SetCapability(CapabilityType.Version, "5.0.1");
        _capabilities.SetCapability(CapabilityType.Platform, "Android");
    
        //Application path and configurations
        _driver = new AndroidDriver(new Uri("http://127.0.0.1:4723/wd/hub"), _capabilities);
    }
    
  4. Чтобы найти элементы на веб-страницах, вы должны использовать локаторы, например, уникальные идентификаторы объектов. Как вы можете найти эти идентификаторы? Я использую Chrome Web Tools, который позволяет эмулировать презентацию веб-сайта на данном мобильном устройстве. После того, как вид был эмулирован, вы можете проверить элементы, которые вы хотите. Например, предположим, что я хочу найти поисковый блок на google.com:Осмотреть элемент

Поэтому код будет выглядеть примерно так: var element = _driver.FindElementByXPath("//input[@id='lst-ib']");

Запуск теста:

  1. Чтобы запустить тесты, запустите Appium Server, нажав кнопку воспроизведения в правом верхнем углу.

  2. Нажмите F5 в Visual Studio

Это оно. Имейте в виду, что Appium и Android SDK быстро меняются, поэтому в Руководство могут быть внесены некоторые обновления.

Да, ты можешь это сделать.

С их сайта:

Да (но не при использовании бэкэнда Selendroid).

  • Автоматизация осуществляется с использованием комплектного сервера Chromedriver в качестве прокси.
  • В 4.2 и 4.3 автоматизация работает только в официальном браузере Chrome или Chromium.
  • В 4.4+ автоматизация также работает со встроенным приложением "Браузер".
  • Chrome / Chromium / Browser должен быть уже установлен на тестируемом устройстве.

Первое, что вы хотите посмотреть, как это сделать, это документация по Appium для ChromeDriver, Android и веб-приложений.

Да

После того, как вы установили правильный DesiredCapabilites() и запустили AppiumDriver, вы можете следить за ним, как обычная автоматизация веб-страниц рабочего стола с использованием селена.

Я использую эти возможности для своих устройств

    capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME,"Android");
    capabilities.setCapability(MobileCapabilityType.BROWSER_NAME,"Chrome"); 
    capabilities.setCapability(MobileCapabilityType.DEVICE_NAME,"Your device name here");
    capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION,"4.4");

ура

Другие вопросы по тегам