Как отправить POST запрос используя Selenium?
Возможна такая ситуация, когда при работе с Selenium возникла необходимость в отправке POST запроса.
Основная проблема в том, что Selenium такие запросы не поддерживает.
Что же можно сделать?
Есть одно решение: так как Selenium позволяет выполнять на странице JavaScript, то с помощью скриптов можно динамически создать форму на странице и затем ее отправить. Либо же сразу сделать нужный вам запрос с помощью JavaScript.
Простой вариант (PHP + JavaScript):
$client = Client::createChromeClient();
$client->request('GET', 'mytest.com');
$js = '
let data = {elementName: "value"};
fetch('https://testaddress.com', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify(data)
}).then(res => {
console.log('Response:', res);
});
';
$client->executeScript($js);
$client->close();
В данном примере сначала открываем страницу mytest.com с помощью Selenium (Symfony Panther), затем отправляем POST запрос на testaddress.com используя js.
Комментарии