Редактировать файл Excel на сервере узлов с помощью WebDriver - PullRequest
0 голосов
/ 31 октября 2018

У меня есть сервер TeamCity (в моем случае это также Selenium Hub), который запускает мои тестовые сценарии Selenium-Python и запускает его на другом сервере Windows (узле).

Ниже приведен типичный тестовый пример, который я хочу выполнить в конфигурации узлового узла селена.

  1. Нажмите «Загрузить шаблон» в приложении, которое загрузит книгу Excel
  2. Получите путь к последнему загруженному файлу в Chrome / Downloads (это работает, используя фрагмент кода ниже)
  3. Передайте этот путь файла в библиотеку Excel Writer, которая, в свою очередь, заполняет некоторые данные
  4. Вернитесь в приложение, нажмите «Загрузить шаблон», который откроет окно загрузки файла, и я использую скрипт autoit, чтобы передать путь к файлу в это окно и перейти к дальнейшим действиям

Код для получения последнего загруженного файла на сервере узла :

from selenium import webdriver

driver = webdriver.Chrome()

def get_file_names_chrome():
  if not driver.current_url.startswith("chrome://downloads"):
    driver.get("chrome://downloads/")
  return driver.execute_script("""
          return downloads.Manager.get().items_
          .filter(e => e.state === "COMPLETE")
          .map(e => e.file_url);
          """)


try:
    files = get_file_names_chrome()
    print (files)
finally:
    driver.quit()

На данный момент мой шаг по сборке TeamCity развертывает исходный код автоматизации на сервере узлов и использует powershell для запуска этих тестовых случаев с хаб-сервера. Однако я хочу, чтобы Selenium Hub занялся моими делами и распространял их.

Есть ли другой способ, которым я могу достичь этого?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...