Telerik Open File Dialog не нажимается с помощью функции щелчка Selenium Web Driver

Ссылка на изображение пользовательского интерфейса, где требуется щелчок селена

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: 'нет такого элемента: невозможно найти элемент.

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

Неудачные попытки, которые пытались открыть File Dialogue:

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

  2. Нажмите на TextBox ()

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

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

  5. Пробовал driver.FindElement(By.Xpath("Xpath диалогового окна" Открыть файл "").SendKeys("FilePath");

1 ответ

Я следовал ниже шагов, чтобы решить:

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

<input type="file" tabindex="0" class="ruFileInput" multiple="multiple" name="ctl00_ContentPlaceHolder1_fileMgr_RadAsyncMultiUploadfile0" id="ctl00_ContentPlaceHolder1_fileMgr_RadAsyncMultiUploadfile0" size="23"> 

  1. Чтобы показать его, я удалил класс ruFileInput с помощью JavaScript

document.querySelectorAll('input[type = file]')[0];
element.className = ' ';

  1. Затем выполнил обычный селеновый веб-драйвер, кликнув по нему.
Другие вопросы по тегам