Можно ли загрузить файл с селеном через тег привязки? - PullRequest
0 голосов
/ 19 ноября 2018

У меня кнопка загрузки файла выглядит так: <a href="javascript:void('');"></a>

Попытка загрузить файл через него, используя метод sendKeys(). Но я получаю ошибки , не могу сосредоточиться на элементе . Есть ли обходной путь или способ загрузки файла с тегом <a>?

Я использую это:

driver.findElementsByXPath("//a[@title='Upload an image']").get(0).sendKeys(System.getProperty("user.dir") + "\files\image.jpg");

Пробовал также к click(), к moveToElement(element).build().perform(), чтобы сосредоточиться на элементе.

1 Ответ

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

Нет невозможно загрузить файл с селеном через тег <a>.

Загрузка файла осуществляется через:

  • <input> теги.
  • Эти теги <input> необходимо сфокусировать перед заполнением любой последовательностью символов

Наоборот,

  • Атрибуты тега <a> являются следующими:

    • charset: определяет кодировку символов связанного документа.
    • coords: Задает координаты, соответствующие атрибуту формы, для определения области изображения для карт изображений
    • href: указывает URL-адрес страницы или имя привязки, на которую идет ссылка.
    • hreflang: код языка URL назначения.
    • name: отмечает область страницы, на которую переходит ссылка.
    • rel: Описывает отношения между текущим документом и целевым URI.
    • rev: указывает отношение между целевым URL и текущим документом.
    • shape: указывает форму карты изображения.
    • target: где открыть целевой URL.
    • type: указывает тип целевого URL-адреса для MIME (многоцелевых расширений электронной почты в Интернете)
    • accesskey: клавиши доступа (или сочетания клавиш).
    • class: широкий идентификатор документа.
    • dir: указывает направление текста.
    • id: широкий идентификатор документа.
    • tabindex: Помогает определить порядок вкладок, когда пользователь «вкладывает» элементы на странице.
    • title: указывает заголовок, связанный с элементом.
    • style: Помогает включить встроенную таблицу стилей casecadubf.
    • lang: установка кода языка.
  • Атрибуты события тега <a> имеют следующий вид:

    • onfocus: скрипт запускается, когда элемент получает фокус.
    • onblur: скрипт запускается, когда элемент теряет фокус.
    • onclick: скрипт запускается при щелчке мыши.
    • ondblclick: скрипт запускается при двойном щелчке мыши.
    • onmousedown: скрипт запускается при нажатии кнопки мыши.
    • onmouseup: скрипт запускается при отпускании кнопки мыши.
    • onmouseover: скрипт запускается, когда указатель мыши перемещается над элементом.
    • onmousemove: скрипт запускается при перемещении указателя мыши.
    • onmouseout: скрипт запускается, когда указатель мыши выходит за пределы элемента.
    • onkeypress: скрипт запускается при нажатии и отпускании клавиши.
    • onkeydown: скрипт запускается при нажатии клавиши.
    • onkeyup: скрипт запускается при отпускании ключа.

Таким образом, в идеале теги <a> должны также иметь возможность получать фокус .

Но поскольку вы видите ошибку, поскольку ... не может сосредоточиться на элементе ... , это может быть связано с другими факторами, которые выходят за рамки для этого вопроса.

Заключение

Загрузка файлов должна выполняться только с помощью тегов <input>.

Ссылки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...