phpunit selenium2-选择多个元素



我有很多内部的'H2'元素。我想要的只是在" H2"

中获取所有" A"

当我尝试这样的事情时:

 public function testBreakingNewsH2(){
    $this->url('index.php');
    $h2Elements = $this->byCssSelector('h2')->byCssSelector('a')->text();
    $this->assertEquals('Breaking News', $h2Elements);
}

我只得到第一个" a"内部" H2"。我需要检查是否存在所有" 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());

,但我希望在不采用所有来源的情况下使其保持清洁。

请建议,谢谢。

使用此代码获得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元素,并通过数组或Regexp检查其URL。这取决于您想要的。

最新更新