Как получить CSS-селектор из DOMElement PHP Symfony - PullRequest
0 голосов
/ 11 мая 2018

В Chrome я могу проверить элемент -> щелкнуть правой кнопкой мыши -> скопировать -> скопировать Xpath (или селектор).

Теперь, используя PHP Symfony, я нахожу такой элемент, давайте предположим, что он возвращает 1 узел DOMElement:

$node = $crawler->filterXPath("//*[text()='Super dee question']");

Теперь, как я могу получить селектор CSS, как если бы этот узел $ был узлом в Google Chrome, и я выполнил шаги, описанные выше: щелкните правой кнопкой мыши и осмотрите $ узел на странице chrome -> copy -> copy Xpath. Очевидно, я не ищу Xpath, содержащий Super Dee, но что-то более похожее на

//*[@id="product_addtocart_form"]/div[2]/h1

РЕДАКТИРОВАТЬ: кажется, что я могу сделать DOMNode :: getNodePath (void), однако при использовании Chrome он обычно может определить ближайший @id и использовать его, что гораздо точнее, чем DOMNode :: getNodePath (void), который выглядит что-то вроде:

/html/body/div[2]/div/div[1]/div[2]/div[2]/div[3]/div[1]/form/div[2]/h1

1 Ответ

0 голосов
/ 12 мая 2018

Сканер DOM, по крайней мере при тестировании, допускает такие операторы, как: $housingText = trim($crawler->filter("#household_housing option:selected")->text());, где household_housing - уникальный id раскрывающегося списка, и возвращает выбранный текст.

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