Как загрузить файл на веб-страницу с помощью проводника ОС?

avatar
RustyShackleford
7 апреля 2018 в 21:46
115
0
0

Я тестирую веб-страницу, которая позволяет мне импортировать файлы csv на страницу.

На веб-странице используется кнопка «Импортировать из файла», чтобы открыть окно поиска (Mac osx), где я могу выбрать файл для загрузки. Мой код селена привел меня к этому моменту.

Я не могу найти поля текста или идентификатора, которые управляют процессом загрузки на веб-странице. HTML-тег ниже предназначен для кнопки, я думаю, что 'data-source' — это путь к файлу, но я не могу использовать его для почему-то:

<a class="ac_button blue ac_button large import_file_link" data-source="file" onclick="return false;"><span>Import From File</span></a>

код пока:

#click on 'import from file' button
imports = driver.find_element_by_link_text('Import From File')
imports.click()


#file upload
fileUpload = driver.find_element_by_id('data-source')
fileUpload.send_keys('/Users/bob/Desktop/test.csv')

Какого идентификатора или текста мне не хватает в 'find_element_by', который поможет мне загрузить файл csv?

Заранее спасибо.

Источник
Andersson
7 апреля 2018 в 21:50
0

Вы пробовали fileUpload = driver.find_element_by_xpath('//input[@type="file"]')?

RustyShackleford
7 апреля 2018 в 21:51
0

Это сработало! Вопрос к вам: как мне заставить окно поиска исчезнуть после выбора моего файла?

Andersson
7 апреля 2018 в 22:03
0

Что такое окно поиска? Вы имеете в виду запрос на загрузку файла, например этот? Появляется ли он после imports.click()?

RustyShackleford
7 апреля 2018 в 22:04
0

окно поиска — это именно то приглашение на загрузку файла, которое вы показывали для окон, кроме mac. Он появляется сразу после import.click()

Andersson
7 апреля 2018 в 22:07
0

Просто удалите определение imports и нажмите. Эти строки избыточны - fileUpload.send_keys() будет работать даже без этих строк.

RustyShackleford
7 апреля 2018 в 22:12
0

Когда я комментирую обе строки для импорта, код полностью останавливается после fileupload.send_keys() без каких-либо изменений на странице. Это то, что вы имеете в виду, удаляя определение?

Andersson
7 апреля 2018 в 22:15
0

Да, я имел в виду, что требуются только строки fileUpload = driver.find_element_by_xpath('//input[@type="file"]') и fileUpload.send_keys('/Users/bob/Desktop/test.csv')... Можете ли вы поделиться URL-адресом страницы или это не публичная страница?

RustyShackleford
7 апреля 2018 в 22:17
0

URL-адрес страницы — activecampaign.com. Однако для доступа к странице, на которой я нахожусь, вам потребуется логин.

Ответы (0)