Рубрики
Без рубрики

BDD Web Automation 12: Загрузить файлы с помощью Webdriver Selenium

Этот пост говорит о 1. Общие методы автоматизации веб-элементов 2. Как загружать файлы

Автор оригинала: CukeTest.

Это 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 мы можем найти элемент управления загрузкой файла, как показано ниже:

1.png.

Тогда наш код 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», который соответствует пути, используемую в коде. Или вы можете изменить путь в коде, чтобы соответствовать реальному расположению файла изображения.

Cucumber.jpeg

После того, как вы запустите скрипт, вы должны быть в состоянии получить какое-либо результат как следующее:

Результат

Он показывает, что Google искал страницу для вас.

Также см.: Предыдущий пост : 11. Найти элементы с лежащими достопримечательностями Первый пост : 01. Создать и запустить первый образец