我有一个关于selenium + php的问题(使用PHPUnit_Extensions_SeleniumTestCase):
我正在经历一个循环,尝试通过执行以下操作来获取网页中的所有元素:
$i = 1;
while ( $this->isElementPresent("//a[" . $i . "]")) {
$tagContents = $this->getText("//a[" . $i . "]");
print $tagContents . "\n";
$i++;
}
并没有找到所有元素:( 如果我尝试通过$ this-> getText()获取内容,则会填充少量内容,其中一些是空的,并且标记的总量少于我在页面上的实际数量
任何人都知道我可能做错了什么?
答案 0 :(得分:1)
Selenium中有一个非常有用的方法 - getAllLinks()
。看here。
返回页面上所有链接的ID。如果给定的链接没有ID, 它将在此数组中显示为“”。
相反,您可以使用javascript获取所有链接(请查看getElementsByTagName()
- example)。
修改强>
好的,我已经为你做了(我正在做类似的事情);)
$js = "function getAllLinks() {
var links = window.document.getElementsByTagName('a');
var contents = [];
for (i = 0; i < links.length; i++) {
var link = links[i];
var text = link.textContent;
contents.push(text);
}
return contents;
}
getAllLinks();";
$links = $this->getEval($js);