Appium: можно ли автоматизировать веб-страницу в браузере Chrome для Android?
Я хотел бы использовать Appium для запуска браузера Chrome на моем Android-устройстве и поиска элементов на определенной веб-странице. Можно ли это сделать? Если так, то как?
Спасибо.
Виктор
3 ответа
Пока платформа не указана, я отвечу, используя Windows, Visual Studio 2013 и.NET Framework 4.5.
Среда:
Установите Android SDK или Visual Studio 2015 Preview. Это необходимо для того, чтобы Appium мог использовать инструменты Android SDK для работы с эмулятором или реальными устройствами.
Загрузите последнюю версию Appium. Не нужно устанавливать. Работает сразу после разархивирования.
В настройках Appium:
Установите флажок "Использовать браузер" и выберите Chrome.
Проверьте опцию "SDK Path" и установите путь.Обновите Chrome Driver (потому что это не всегда последняя версия в пакете Appium).
Относительный путь к драйверу chrome в appium pack \node_modules\appium\build\chromedriver\windowsДля запуска тестов на вашем устройстве Adnroid вы должны активировать режим отладки по USB и подключить его к ПК.
Кодирование:
Создайте новый проект модульного тестирования в Visual Studio 2013:
Файл → Новый проект → Visual C# → Тест → Проект модульного теста
Делая это, вы будете использовать для тестового фреймворка MSTest.exe
Есть несколько других, если хотите, NUnit, например.В обозревателе решений:
Щелкните правой кнопкой мыши имя проекта → Управление пакетами NuGet → Веб-драйвер Serch Appium → Добавить в проект
Это нужно, чтобы вы могли веб-драйвер.В созданном проекте установите желаемые возможности.
Я использую следующее: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); }
Чтобы найти элементы на веб-страницах, вы должны использовать локаторы, например, уникальные идентификаторы объектов. Как вы можете найти эти идентификаторы? Я использую Chrome Web Tools, который позволяет эмулировать презентацию веб-сайта на данном мобильном устройстве. После того, как вид был эмулирован, вы можете проверить элементы, которые вы хотите. Например, предположим, что я хочу найти поисковый блок на google.com:
Поэтому код будет выглядеть примерно так: var element = _driver.FindElementByXPath("//input[@id='lst-ib']");
Запуск теста:
Чтобы запустить тесты, запустите Appium Server, нажав кнопку воспроизведения в правом верхнем углу.
Нажмите 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");
ура