Есть ли кроссплатформенное решение для взаимодействия с ОС узла при использовании селеновой сетки? - PullRequest
0 голосов
/ 20 июня 2020

Я написал несколько тестов на селен, которые запускались и проходили локально. Я написал их для Windows / Chrome. В какой-то момент мое приложение открывает локальный файловый менеджер для загрузки файла. Для взаимодействия с этим я использовал AutoIt, который решил мою проблему. Однако сейчас я перемещаю свои тесты в сетку (через lambdatest) и тестирую как Windows, так и Ma c. AutoIt работает только на Windows, и из коробки он работает только локально. Я знаю, что были предложены некоторые решения для удаленного использования AutoIt, но это не помогает мне с ОС Ma c.

Есть ли общее решение, как приблизиться к взаимодействию с удаленной машиной во время теста на селен ?

Любая помощь приветствуется. Я не уверен, как к этому подойти.

РЕДАКТИРОВАТЬ: После просмотра множества решений по этому поводу, ниже показано то, что я пытался, но время теста истекло, потому что он не может найти входной файл. Я знаю, что должен быть какой-то способ сделать это. Люди, тестирующие приложения на MacOS, не могут использовать AutoIT, каково же решение?

        # upload photo
        photo_upload_element = wait1.until(
            EC.visibility_of_element_located((By.CLASS_NAME, 'reply-field__button--cam'))).click()
        time.sleep(2)
        file_input = self.driver1.find_element_by_css_selector("input[type='file']")
        time.sleep(2)
        file_input.send_keys(DIR_PATH + r"\path\to\local\photo.jpg")
        time.sleep(2)
        file_input.send_keys(Keys.RETURN)
        time.sleep(2)
        wait1.until(
            EC.visibility_of_element_located((By.CLASS_NAME, 'buttons-grid__button'))).click()
        time.sleep(2)

Вот html на странице для ввода:

<template>
  <input
    class="fileselect"
    v-on:change="handleFileSelect"
    ref="fileinput"
    id="cam"
    type="file"
    accept="image/*"
    :capture="camera"
    data-testid="fileselect"
  />
</template>

Может ли кто-нибудь предложить решение? введите описание изображения здесь

Ответы [ 2 ]

1 голос
/ 24 июня 2020

Убедитесь, что вы используете file detector реализуется при запуске тестов в сетке, которые должны решить эту проблему.

Вы можете обратиться к приведенной ниже ссылке для получения дополнительной информации о детекторе файлов . Детектор файлов в реализации драйвера Remoter

Я думаю, нам не нужно использовать AutoIT в этом случае, так как тип ввода file в идеале send_keys метод должен позаботиться о просмотре файл.

0 голосов
/ 29 июня 2020

Я думаю, вы пытаетесь решить проблему с файлом просмотра. Если это так, вы можете использовать pyautogui:

from pyautogui import typewrite

typewrite('file.txt')

typewrite(['enter'])
...