使用DomCrawler选择一个链接按钮

时间:2014-07-29 09:31:38

标签: symfony phpunit

我正在为我的Symfony应用程序编写功能测试。

但是,我还没有办法点击像这样的链接按钮

<a id="update" title ="Edit this folder" name="update" href="{{ path('folder_edit', { 'id': entity.id }) }}">
    <button class="button-strong">
        Edit
    </button>
</a>

我尝试以这种方式点击它:

 $link = $crawler->selectLink("Edit")->link();
 $client->click($link);

我尝试了很多其他方法,但没有任何成功。但是当我运行测试时,他一直在抛出这个例外:

InvalidArgumentException : The current node list is empty

我看过是否有办法只点击一个按钮,但如果没有与之相关联的表单似乎是不可能的。

非常感谢。

1 个答案:

答案 0 :(得分:1)

首先,<button>中的<a>在HTML 5中无效,可能无法按预期工作。

得出答案,你得到这个错误的原因是由于空白的差异。抓取工具不会忽略空格,因此找不到包含编辑文本的链接。

<强> HTML

<a id="update" title ="Edit this folder" name="update" href="#">Edit</a>

<强> TEST

$link = $crawler->selectLink('Edit')->link();
$client->click($link);