我正在写一个phpunit测试...在我的页面上我有几行,其中一行是这样的:
<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>
如何运行测试以检查带有图钉glyphicon的行是否为&#34; MATCH&#34;?
基本上我希望测试确认glyphicon出现在正确的行上,只是像$crawler->filter('small:contains("' . $glyphCode . '")')->count()
那样只确认字形存在 - 而不是它在正确的位置。< / p>
感谢任何帮助,谢谢。
答案 0 :(得分:2)
您可以将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用作预期值,以确保在页面上找到一个元素。
答案 1 :(得分:1)
实际上,这个问题可以视为字符串匹配问题。 有几种不同的方法可以做到这一点。
$ret = $html->find('td[class=*glyph]');
模式字符串可能类似于/class="[^"]+glyph/
$ grep glyph xxx.php