使用 DomCrawler 检查 table 行
Checking for a table row using 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>NOT A MATCH 2</td></tr>
<tr><td>NOT A MATCH 3</td></tr>
我如何 运行 进行测试以检查带有图钉符号的行是否是带有 "MATCH" 的行?
基本上我想要测试来确认字形出现在正确的行上,并且只有 $crawler->filter('small:contains("' . $glyphCode . '")')->count()
之类的东西只能确认字形存在 - 而不是它在正确的位置。
感谢任何帮助,谢谢。
其实这道题可以看做字符串匹配题。
有几种不同的方法可以做到这一点。
$ret = $html->find('td[class=*glyph]');
- 在PHP
中使用regular expression
模式串可能喜欢/class="[^"]+glyph/
- 运行 grep 命令中的 shell
$ grep glyph xxx.php
您可以将 XPath 选择器与 Symfony 的 DomCrawler 一起使用。
要 select 您想要的元素,请使用此 XPath 表达式:
//td//small/span[@class="glyphicon glyphicon-pushpin"]
然后将其放入 PHPUnit 断言中。
$this->assertEquals(1,
$crawler->filterXPath('//td//small/span[@class="glyphicon glyphicon-pushpin"]')->count()
);
我使用 assertEquals 1 作为预期值,以确保在页面上找到一个元素。
我正在写一个 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>
我如何 运行 进行测试以检查带有图钉符号的行是否是带有 "MATCH" 的行?
基本上我想要测试来确认字形出现在正确的行上,并且只有 $crawler->filter('small:contains("' . $glyphCode . '")')->count()
之类的东西只能确认字形存在 - 而不是它在正确的位置。
感谢任何帮助,谢谢。
其实这道题可以看做字符串匹配题。 有几种不同的方法可以做到这一点。
$ret = $html->find('td[class=*glyph]');
- 在PHP 中使用regular expression
模式串可能喜欢/class="[^"]+glyph/
- 运行 grep 命令中的 shell
$ grep glyph xxx.php
您可以将 XPath 选择器与 Symfony 的 DomCrawler 一起使用。
要 select 您想要的元素,请使用此 XPath 表达式:
//td//small/span[@class="glyphicon glyphicon-pushpin"]
然后将其放入 PHPUnit 断言中。
$this->assertEquals(1,
$crawler->filterXPath('//td//small/span[@class="glyphicon glyphicon-pushpin"]')->count()
);
我使用 assertEquals 1 作为预期值,以确保在页面上找到一个元素。