Selenium+PHPunit:查找集合中的每个元素



我正在寻找一种使用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:

加载HTML
$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
    }
}

最新更新