Не нажимайте на кнопку, которая вызывает окно выбора файла, вместо этого найдите элемент <input>
, проверив страницу, и используйте его локатор непосредственно с ключевым словом Choose File
.
Например, в стекеПереполнение, если вы хотите отредактировать свой вопрос и загрузить изображение, следует использовать элемент <input type="text" class="s-input" id="image-upload-url-input-55038357">
.Найдите похожий элемент на тестируемой странице.
<div class="grid--cell grid fl-grow1 ai-baseline sm:fd-column sm:ai-stretch d-none js-url-input-container">
<label class="s-label mr8 sm:mr0 sm:mb4" for="image-upload-url-input-55038357">Paste image or link:</label>
<div class="fl1 ps-relative">
<input type="text" class="s-input" id="image-upload-url-input-55038357">
</div>
<button class="s-btn sm:as-start js-cancel-url">Cancel</button>
</div>
Чтобы получить пример кода, следующий фрагмент перейдет к этому вопросу в качестве пользователя квеста и загрузит Capture.PNG (без сохранения).Обратите внимание на локатор //*[contains(@id, 'image-upload-file-input')]
для предыдущего элемента ввода.
*** Settings ***
Library SeleniumLibrary
*** Variables ***
${EDIT QUESTION ELEMENT} improve this question
${UPLOAD IMAGE BUTTON} //*[contains(@id, 'wmd-image-button')]
*** Test Cases ***
File Upload Test
Open Browser /8683497/robot-framework-file-upload-oshibka-pri-poluchenii-elementa-nedostupna Chrome
Maximize Browser Window
Click Link ${EDIT QUESTION ELEMENT}
Click Element ${UPLOAD IMAGE BUTTON}
Choose File //*[contains(@id, 'image-upload-file-input')] D:\\Capture.PNG
Click Button Add picture