Это 12-й пост в серии, тест на автоматизации BDD для веб-пользовательского интерфейса. В основном он говорит о том, как написать сценарий тестирования веб-автоматизации с помощью CuCumber.js, BDD-тестовой структуры.
Содержание
- Общие методы для автоматизации веб-элементов
- Как загружать файлы
Общие методы для автоматизации веб-элементов
Вот список обычно используемых методов на объекте веб-элемента, возвращаемого WebDriver:
Нажмите () | Driver.findelement ({ID: ‘xxx’}). Нажмите () | Нажмите Веб-элемент |
Чисто() | Driver.findelement ({ID: ‘xxx’}). Очистить () | Очистить текст от ввода элемента |
SendKeys (значение) | Driver.findelement ({ID: ‘xxx’}). SendKeys («Hello World») | Отправить текст на элемент |
GetText () | Driver.findelement ({ID: ‘xxx’}). GetText () | Получить текст веб-элемента |
Эти четыре метода являются наиболее часто используемыми. API SELENIUM-WEBDRIVER также предоставляет несколько способов вызывать, такие как получение свойства CSS веб-элемента или координатная позиция веб-элемента и т. Д. Вы можете обратиться к Selenium-Webdriver API чтобы понять их лучше. В этом посте мы обсудим, как загрузить файл на веб-странице.
Загрузить файлы
Некоторые веб-страницы просят пользователя загружать файлы. Они могут быть файлами изображения или файлы документов. Во время операции загрузки появляется диалоговое окно файла. В диалоговом окне «Файл» вы выбираете файл, а затем нажмите «Открыть».
Чтобы автоматизировать этот процесс, есть 2 способа заполнить управление загрузкой файла:
Если стандартный диалог файла используется веб-страницей, действие загрузки может быть автоматизирована с чистым селен-WebDriver. Вы можете позвонить
SendKeys ()
В элементе управления файлом, чтобы заполнить элемент управления файлом с помощью пути файла, а затем отправить форму. С помощью этого подхода не будет показано диалоговое окно файла, вы просто обходите диалоговое окно файла и установите путь к файлу непосредственно в управление загрузкой файлов.Если на странице используется некоторое управление Flash, чтобы загрузить файл, его нельзя вызывать напрямую с Selenium-WebDriver, вы можете взаимодействовать с нативными элементами управления Windows, чтобы заполнить диалоговое окно файла с именем файла. Для получения дополнительной информации о том, как автоматизировать нативные элементы управления Windows, вы можете обратиться к Автоматизация приложений Windows 02: Отправить почту с почтовым клиентом Отказ
Здесь я хотел бы использовать поиск Google в качестве примера, чтобы показать первое решение, которое более распространено. С помощью Chrome devtools мы можем найти элемент управления загрузкой файла, как показано ниже:
Тогда наш код Node.js можно записать так:
require('chromedriver') const { Builder } = require('selenium-webdriver'); let driver = new Builder().forBrowser('chrome').build(); //open google image; (async function() { await driver.get('https://www.google.com/imghp?hl=en&tab=wi'); // click upload picture await driver.findElement({className:"S3Wjs"}).click() //find file input control and use sendKeys() to send input await driver.findElement({css:'#qbug > div > a'}).click(); await driver.findElement({id: 'qbfile'}).sendKeys('c:\\temp\\cucumber.jpeg'); return driver.quit() })();
Чтобы проверить этот скрипт, вы можете использовать следующую картинку, сохранить его под «C: \ Temp \ Cucumber.jpeg», который соответствует пути, используемую в коде. Или вы можете изменить путь в коде, чтобы соответствовать реальному расположению файла изображения.
После того, как вы запустите скрипт, вы должны быть в состоянии получить какое-либо результат как следующее:
Он показывает, что Google искал страницу для вас.
Также см.: Предыдущий пост : 11. Найти элементы с лежащими достопримечательностями Первый пост : 01. Создать и запустить первый образец