phpunit selenium2 - 选择多个元素

时间:2014-01-30 13:54:39

标签: php phpunit selenium-webdriver

我有很多'h2'元素,里面有'a'。 我想要的只是获得'h2'中的所有'a'

当我尝试这样的事情时:

 public function testBreakingNewsH2(){

    $this->url('index.php');

    $h2Elements = $this->byCssSelector('h2')->byCssSelector('a')->text();
    $this->assertEquals('Breaking News', $h2Elements);
}

我只获得'h2'中的第一个'a'。 我需要检查所有'h2'链接是否存在(获取包含'a'的所有'h2'元素) 我试过这样的事情:

公共功能testHomePgaeH2(){

    $this->url('index.php');
    $h2Elements = $this->elements($this->using('css selector')->value('h2'));

    $this->assertContains('Breaking News', $h2Elements);
    $this->assertContains('Analysis', $h2Elements);
    $this->assertContains('Calendar', $h2Elements);
    $this->assertContains('Studies', $h2Elements);

}

这不起作用,这是我为我的问题找到的最好的例子。 当然我可以尝试这样的事情:

$this->assrtRegExp('/xxxx/i', $this->source());

但我希望尽可能让它干净而不需要全部来源。

请告知, 感谢。

1 个答案:

答案 0 :(得分:1)

您可以通过以下代码获得css选择器的元素列表:

$elements = $this->elements($this->using('css selector')->value('h2 a'));
foreach ($elements as $i=>$element){
    echo $element->text() . "\n";
}

如果您要检查所有h2是否包含a,您可以通过css选择器h2查找所有元素并计算它们,然后按h2 a查找并重新计算。然后比较。您还可以迭代所有h2 a元素并通过数组或正则表达式检查其URL。这取决于你想要什么。