DomCrawler. Как нажать кнопку? "Невозможно перемещаться по тегу" кнопки "."

Я получил форму:

<button type="submit" id="dostawa_zapisz" name="dostawa[zapisz]">Zapisz</button>
<input type="hidden" id="dostawa__token" name="dostawa[_token]" value="foo">

и хочу нажать на нее:

//        $link = $crawler->filter('button:contains("Zapisz")')->link();
//        $link = $crawler->filterXPath('//*[@id="dostawa_zapisz"]')->link();
        $link = $crawler->selectButton('dostawa[zapisz]')->link();
        $crawler = $client->click($link);

но это показывают

"Невозможно перемещаться по тегу" кнопки "."

(Есть ли документация о навигации с использованием DomCrawler, кроме этой)

1 ответ

Решение

Это кнопка отправки, и у вас нет ссылки, так что вам нужно "нажать" ее (или отправить).

Я боролся с Goutte Web Scraper и в итоге использовал Mink для проведения функциональных тестов. Вы можете прочитать мой блог об этом. Там есть немного полезной информации, и, кроме того, если вы перейдете по ссылке Goutte Web Scraper, там будет немного больше информации.

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

Для вашего кода вам, вероятно, нужно сделать что-то вроде этого, если вы планируете использовать это:

$form = $crawler->selectButton('Zapisz')->form();

А затем заполните форму и отправьте ее.

Другие вопросы по тегам