Selenium + PHPunit:集合中的foreach元素

时间:2011-04-12 10:56:15

标签: collections selenium foreach phpunit element

我正在寻找一种方法来使用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
}

2 个答案:

答案 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()

中提取HTML中的数据
$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());

相关问题