Laravel页面内容测试可以由CSS或XPath表达式约束吗


Can Laravel page content tests be constrained by a CSS or XPath expression?

我正在学习Laravel,目前正在研究如何编写自动化功能测试。我习惯了Selenium和Spiderling这样的工具,在这些工具中,我可以指定应该在页面上的哪里找到文本片段。

例如,在Spiderling中,我可以这样做:

$page = $this->visit(self::DOMAIN . '/browse');
$firstSource = $page->
    find('table#reports tbody tr:first-child td:last-child')->
    text();
$this->assertEquals('Item 1', $firstSource);

这非常明确:文本"Item1"必须在reports表的第一行,即最后一个单元格中。

正如我从文档中所理解的,要检查Laravel中的文本片段,可以这样做:

$this->
    visit('/browse')->
    see('Item 1');

然而,对我来说,这并不是很令人满意——我如何才能防止出现回归错误,即文本正确但位置错误?我很乐意在这里使用CSS或XPath。

该解决方案非常简单,只是没有文档。在InteractsWithPages特性中有一种方法seeInElement:

$this->
    visit('/browse')->
    seeInElement('table#reports tbody tr:first-child td:last-child', 'Item 1');