Selenium Web Driver - элемент ввода не взаимодействуетPython

Программы на Python
Anonymous
Selenium Web Driver - элемент ввода не взаимодействует

Сообщение Anonymous »

Я пишу автоматический тест для импорта файлов через пользовательский интерфейс веб-приложения. Как пользователь, вы нажимаете кнопку «Импортировать», открывается проводник Windows, и вы можете перемещаться по системе, чтобы найти файл, который хотите импортировать. Автоматический тест работает немного по-другому, поскольку Selenium не может взаимодействовать с Проводником Windows. Я использую send_keys со следующим XPATH для передачи строки пути к файлу в пользовательский интерфейс:

Код: Выделить всё

input_path = "(//input[contains(@type, 'file')])[1]"
И я получил следующую ошибку:

Код: Выделить всё

Message: invalid element state: Element is not currently interactable and may not be manipulated
Поэтому я попытался манипулировать JavaScript, чтобы сделать элемент интерактивным, вот так:

Код: Выделить всё

self.webDriver.execute_script(f"arguments[0].style.display='block'; arguments[0].value={filePath};", input_path)

self.webDriver.execute_script("arguments[0].dispatchEvent(new Event('change'));", input_path)
Но это дало мне еще одну ошибку:

Код: Выделить всё

selenium.common.exceptions.WebDriverException: Message: unknown error: Runtime.evaluate threw exception: SyntaxError: Unexpected token ':'
Я не уверен, в чем проблема.
Элемент ввода выглядит следующим образом: Я не знаю, означает ли это что-нибудь, но на другой панели приложения есть еще один элемент ввода, который выглядит следующим образом: Я использую //input[@accept = '.docx'] для определения input_path в этом тесте, и он работает нормально. Может ли проблема заключаться в отсутствии свойства Accept в бывшем элементе ввода?

Подробнее здесь: https://stackoverflow.com/questions/787 ... teractable

Вернуться в «Python»