Symfony 使用DomCrawler检查表行
我正在写一个phpunit测试。。。在我的页面上有几行,其中一行是这样的:Symfony 使用DomCrawler检查表行,symfony,dom,phpunit,domcrawler,Symfony,Dom,Phpunit,Domcrawler,我正在写一个phpunit测试。。。在我的页面上有几行,其中一行是这样的: <tr><td>MATCH<small><span class="glyphicon glyphicon-pushpin"></span></small></td></tr> <tr><td>NOT A MATCH 1</td></tr> <tr><td>
<tr><td>MATCH<small><span class="glyphicon glyphicon-pushpin"></span></small></td></tr>
<tr><td>NOT A MATCH 1</td></tr>
<tr><td>NOT A MATCH 2</td></tr>
<tr><td>NOT A MATCH 3</td></tr>
匹配
有些是这样的:
<tr><td>MATCH<small><span class="glyphicon glyphicon-pushpin"></span></small></td></tr>
<tr><td>NOT A MATCH 1</td></tr>
<tr><td>NOT A MATCH 2</td></tr>
<tr><td>NOT A MATCH 3</td></tr>
不匹配1
不是比赛2
不是比赛3
如何运行测试以检查带有图钉图示符图标的行是否为带有“匹配”的行
基本上,我希望测试确认glyphicon出现在正确的行上,并且只需要像$crawler->filter('small:contains(“..$glyphCode.””)->count()
这样的东西就可以确认glyph存在,而不是它在正确的位置
非常感谢您的帮助。实际上,这个问题可以被视为字符串匹配问题。 有几种不同的方法可以做到这一点
- 使用
$ret=$html->find('td[class=*glyph')代码>
- 在PHP中使用
模式字符串可能类似于/class=“[^”]+glyph/
- 在shell中运行grep命令
$grep glyph xxx.php
您可以将XPath选择器与Symfony的DomCrawler一起使用
要选择所需元素,请使用以下XPath表达式:
//td//small/span[@class="glyphicon glyphicon-pushpin"]
然后将其放入PHPUnit断言中
$this->assertEquals(1,
$crawler->filterXPath('//td//small/span[@class="glyphicon glyphicon-pushpin"]')->count()
);
我使用assertEquals 1作为预期值,以确保在页面上找到一个元素。谢谢。使用它以及->parents()->parents()->html()
我能够得到我需要的东西。非常感谢:)