首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >phpunit selenium2 -选择多个元素

phpunit selenium2 -选择多个元素
EN

Stack Overflow用户
提问于 2014-01-30 13:54:39
回答 1查看 1.2K关注 0票数 0

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

当我尝试这样的东西时:

代码语言:javascript
复制
 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(){

代码语言:javascript
复制
    $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);

}

这不管用,这是我为我的问题找到的最好的例子。我当然可以尝试这样的方法:

代码语言:javascript
复制
$this->assrtRegExp('/xxxx/i', $this->source());

但我想让它尽可能的干净而不带走所有的来源。

请告诉我,谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-31 02:12:18

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

代码语言:javascript
复制
$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检查它们的urls。这取决于你想要什么。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21458426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档