У меня есть сервер TeamCity (в моем случае это также Selenium Hub), который запускает мои тестовые сценарии Selenium-Python и запускает его на другом сервере Windows (узле).
Ниже приведен типичный тестовый пример, который я хочу выполнить в конфигурации узлового узла селена.
- Нажмите «Загрузить шаблон» в приложении, которое загрузит книгу Excel
- Получите путь к последнему загруженному файлу в Chrome / Downloads (это работает, используя фрагмент кода ниже)
- Передайте этот путь файла в библиотеку Excel Writer, которая, в свою очередь, заполняет некоторые данные
- Вернитесь в приложение, нажмите «Загрузить шаблон», который откроет окно загрузки файла, и я использую скрипт 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 занялся моими делами и распространял их.
Есть ли другой способ, которым я могу достичь этого?