我正在寻找一种方法来使用PHPunit处理Selenium中的元素集合。假设我有以下代码:
<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
}
答案 0 :(得分:1)
在PHP中,如果你想使用一些HTML数据,一个很好的解决方案是使用DOMDocument
类 - 这意味着能够使用DOM方法 - 通过它DOMDocument::loadHTML()
方法。
使用DOMDocument加载HTML:
$dom = new DOMDocument();
$dom->loadHTML('HERE YOUR HTML STRING');
然后您可以实例化DOMXpath
对象:
$xpath = new DOMXPath($dom);
这将允许您使用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
}
}
答案 1 :(得分:1)
获取整个页面内容的功能是: - getHtmlSource() 因此,加载HTML的最终函数调用将类似于.. $ dom-&GT; loadHTML($这 - &GT; getHtmlSource());