我正在寻找一种使用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
}
获取整个页面内容的函数是:- getHtmlSource()因此,加载HTML的最后一个函数调用将类似于。dom -> loadHTML ($ this -> getHtmlSource ());
在PHP中,如果你想处理一些HTML数据,一个很好的解决方案是使用 DOMDocument
类——这意味着能够使用DOM方法——通过它的 DOMDocument::loadHTML()
方法。
用DOMDocument:
$dom = new DOMDocument();
$dom->loadHTML('HERE YOUR HTML STRING');
你可以实例化一个 DOMXpath
对象:
$xpath = new DOMXPath($dom);
这将允许您使用XPath查询从HTML中提取数据,使用 DOMXPath::query()
:
$entries = $xpath->query('//div[@class="test"]'); // notice quotes
if ($entries->length > 0) {
foreach ($entries as $entry) {
// Work on the $entry -- which is a DOM node/element
}
}