【问题标题】:Symfony Crawler: how to check that a link to a particular page existsSymfony Crawler:如何检查指向特定页面的链接是否存在
【发布时间】:2015-09-01 14:22:20
【问题描述】:

我正在编写一些功能测试,如果用户登录,我想验证页面上是否存在编辑链接。

链接是一个简单的<a href="/profile/22/edit">Edit</a>

如何使用 Symfony 的 Crawler 组件对其进行过滤?

一个解决方案是这样的:

$this->assertEquals(1, $crawler->filter('html:contains("<a href="/profile/22/edit">")')->count());

但我想改用标签选择,那我该怎么做呢?

【问题讨论】:

    标签: php symfony phpunit functional-testing


    【解决方案1】:

    您可以使用 Crawler::filterXPath() 来检查是否存在与各种条件匹配的 html 元素。要检查链接是否存在,我更喜欢使用元素 id,因为它最有可能保持不变。例如,如果您将链接修改如下:

    <a id="edit-profile-link" href="/profile/22/edit">Edit</a>
    

    然后你可以像这样检查链接是否存在:

    $node = $crawler->filterXPath('//a[@id="edit-profile-link"]');
    $this->assertTrue($node->count() == 1), "Edit profile link exists");
    

    Here 是可用于 XPath 的过滤器的一些很好的例子。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-13
      • 2013-01-27
      • 2016-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多