我正在学习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');