2012-03-26 7 views
0

i've got a question, regarding selenium + php (using PHPUnit_Extensions_SeleniumTestCase):PHP +セレン、すべてを得る方法<a href...> tags from one page

i'm going through a loop, trying to get all elements from a webpage, by doing something like:

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

and it's not finding all elements :( if i try to get the contents via $this->getText() a very few are filled, some are empty, and the overall amount of tags is way less than i really have on my page

anyone got an idea what i might be doing wrong ?

答えて

1

There is a very useful method in Selenium - getAllLinks(). Look here

ページ上のすべてのリンクのIDを返します。指定されたリンクにIDがない場合、 この配列には ""と表示されます。



は、この代わりに、あなたはJavaScriptを使用して、すべてのリンクが( - examplegetElementsByTagName()を見て)取得することができます。

EDIT
OK、私は(私は似た何かに取り組んでいた)あなたのためにそれを行っている;)

$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); 
関連する問題