Всех с наступающим Новым Годом! Помогите пожалуйста разобраться, как отправить через webdriver json-запрос на загрузку файла.
Selenium такими вещами не занимается. Загружать файл в форму можно через send_keys. Все что касается post\get запросов, это к любой библиотеке работающей с REST.
а толковую библиотечку не посоветуете? и каким образом можно залить файл через send_keys?
Ну вы бы хоть сказали какой ЯП используете По поводу загрузки файла через send_keys:
element = self.driver.find_element_by_xpath(xpath)
element.send_keys(file_path)
Тут все очень просто, пример на Python (для Java, C# и etc. думаю не сильно будет отличаться), вам нужно получить элемент input который используется в форме для загрузки, и через send_keys передать ему путь к загружаемому файлу. Потом просто отправляете форму любым способом. Естественно такой способ канает только если есть input элемент для загрузки.
P.S.: по поводу библиотеки для REST, могу только подсказать либу под Python - requests очень простая и гибкая.
unirest — кроссязыковая библиотека для работы с HTTP(S).
я использую связку java+junit+selenium
Rest assured библиотечка для json
Решение вашей задачи выглядит как то так
given(). multiPart(new File("/path/to/file")). when(). post("/upload");
Продолжение вопроса: а как выдернуть из ответа сервера cookie?
с помощью чего?
selenium+java. Если есть возможность, то через Rest accured
а можно немного поподробнее?
Там куча примеров.
final Map<String,String> cookies = get("/multiCookie").cookies();
я понять только не могу : /multiCookie это что?
запрос на какой-то бэкенд?
да. у меня задача - через автотесты залить файлы. автотесты на java+junit+selenium.
это был ответ, get("/multiCookie") это обычный гет запрос куда-либо, по сути
GET /something
...
данный пример урла взят из теста с их гитхаба
понятно, спасибо большое
в продолжение вопроса:
public void cookiesReturn() throws Exception {
final Map<String,String> cookies = get("/login").cookies();
System.out.print(cookies.get("rememberme");
}
Не работает. При попытке вызвать из теста cookiesReturn(); - выдается ошибка
Теперь у меня еще начала вылезать непонятная ошибка при запуске самого браузера. В коде ничего не менял, добавил только вот это выдергивание куков.