php+硒,如何获得所有<;a href>;标签


php + selenium, how to get all <a href...> tags from one page

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

我正在经历一个循环,试图从网页中获取所有元素,方法是:

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

它并没有找到所有元素:(如果我试图通过$this->getText()获取内容,那么只有极少数被填充,有些是空的,并且标签的总量远低于我在页面上的实际数量

有人知道我可能做错了什么吗?

Selenium-getAllLinks()中有一个非常有用的方法。看这里

返回页面上所有链接的ID。如果给定的链接没有ID,它将在此数组中显示为"。



相反,您可以使用javascript获取所有链接(参见getElementsByTagName()示例)。

编辑
好吧,我已经为你做了(我正在做类似的事情);)

$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);