Telerik Open File Dialog не нажимается с помощью функции щелчка Selenium Web Driver - PullRequest
0 голосов
/ 20 ноября 2018

Link to Image of UI where selenium click is required

HTML & CSS код вышеуказанного интерфейса:

<span class="ruFileWrap ruStyled">
    <input type="text" class="ruFakeInput radPreventDecorate" id="ctl00_ContentPlaceHolder1_fileMgr_RadAsyncMultiUploadfakeInput0" size="22">
    <label for="ctl00_ContentPlaceHolder1_fileMgr_RadAsyncMultiUploadfakeInput0" style="display:none">label</label>
    <input type="button" tabindex="-1" value="Select" class="ruButton ruBrowse">
    <input type="file" tabindex="0" class="ruFileInput" multiple="multiple" 
           name="ctl00_ContentPlaceHolder1_fileMgr_RadAsyncMultiUploadfile0" id="ctl00_ContentPlaceHolder1_fileMgr_RadAsyncMultiUploadfile0" size="23">
    <label for="ctl00_ContentPlaceHolder1_fileMgr_RadAsyncMultiUploadfile0" style="display:none">label</label>
    </span>

Наблюдение:

Функция загрузки файла достигается с помощью Telerik Control

Проблема:

Необходимо загрузить файл, но всякий раз, когда щелчок Selenium WebDriver выполняется по кнопке «Выбрать», появляется следующая ошибка

OpenQA.Selenium.NoSuchElementException: 'нет такого элемента: невозможнонайти элемент .

Были разные ошибки для разных элементов, которые были нажаты.Один из них был «Элемент не активен»

Неудачные попытки при попытке открыть диалог файлов:

  1. Нажал на кнопку выбора ()

  2. Нажал на TextBox ()

  3. Нажал на Span ()

  4. Выполнен JavaScript-клик для всех вышеупомянутых элементов

  5. Пробный драйвер.FindElement (By.Xpath («Диалоговое окно ввода открытого файла Xpath»)). SendKeys («FilePath»);

1 Ответ

0 голосов
/ 22 ноября 2018

Я выполнил следующие шаги для разрешения:

  1. Обнаружен скрытый открытый диалог файлов (из-за класса ruFileInput)

<input type="file" tabindex="0" class="ruFileInput" multiple="multiple" name="ctl00_ContentPlaceHolder1_fileMgr_RadAsyncMultiUploadfile0" id="ctl00_ContentPlaceHolder1_fileMgr_RadAsyncMultiUploadfile0" size="23"> 
Чтобы показать его, я удалил класс ruFileInput с помощью JavaScript

document.querySelectorAll('input[type = file]')[0];
element.className = ' ';
Затем выполнил обычный селеновый веб-драйвер, кликнув по нему.
...