Selenium + PHPunit: элемент foreach в коллекции - PullRequest
0 голосов
/ 12 апреля 2011

Я ищу способ работы с коллекциями элементов в Selenium с помощью PHPunit.Допустим, у меня есть следующий код:

<div class="test">aaa</div>
<div class="test">bbb</div>
<div class="test">ccc</div>

Я бы хотел работать со всеми элементами <div> внутри каждого цикла, скажем, выбрав элементы на основе их класса с помощью //div[@class='test']

$divs = ...  // 
foreach ($divs as $div) {
 // do something
}

Ответы [ 2 ]

1 голос
/ 20 мая 2011

Функция для получения содержимого всей вашей страницы: - getHtmlSource () Таким образом, ваш последний вызов функции для загрузки HTML будет выглядеть примерно так:*

1 голос
/ 12 апреля 2011

В PHP, если вы хотите работать с некоторыми данными HTML, отличным решением является использование DOMDocument класса - что означает возможность работать сМетоды DOM - с помощью метода DOMDocument::loadHTML().


Загрузка HTML-кода в DOMDocument:

$dom = new DOMDocument();
$dom->loadHTML('HERE YOUR HTML STRING');

Затем вы можете создать экземпляр объекта DOMXpath:

$xpath = new DOMXPath($dom);


, который позволит вам извлекать данные из HTML, используя запросы XPath, с помощьюDOMXPath::query():

$entries = $xpath->query('//div[@class='test']');
if ($entries->length > 0) {
    foreach ($entries as $entry) {
        // Work on the $entry -- which is a DOM node/element
    }
}
...