php + selenium,如何获取所有<a href...=""> tags from one page</a>

时间:2012-03-26 14:34:50

标签: php testing selenium

我有一个关于selenium + php的问题(使用PHPUnit_Extensions_SeleniumTestCase):

我正在经历一个循环,尝试通过执行以下操作来获取网页中的所有元素:

 $i = 1;
 while ( $this->isElementPresent("//a[" . $i . "]")) {
      $tagContents = $this->getText("//a[" . $i . "]");
      print $tagContents . "\n";
      $i++;
 }

并没有找到所有元素:( 如果我尝试通过$ this-&gt; getText()获取内容,则会填充少量内容,其中一些是空的,并且标记的总量少于我在页面上的实际数量

任何人都知道我可能做错了什么?

1 个答案:

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