【发布时间】:2014-09-03 17:27:28
【问题描述】:
我正在为 BDD 使用 Behat 和 Mink 框架(使用 PHP)
我正在循环遍历 td 元素以验证值和文本。由于返回的所有元素都是 span 元素,我可以在元素上使用 getText() ,一切都很好。
$page = $this->getSession()->getPage();
$expected_values = ["Tuesday", 22, 22, 22, 22];
$actual_rows = $page->findAll('css', 'table.admin-table tbody tr td');
$actual_Values = array();
foreach($actual_rows as $row) {
$actual_Values[] = $row->getText();
}
assertEquals($expected_values, $actual_Values);
但最近,页面的设计发生了变化。并且一些 span 元素已被 input 元素替换。 getText() 返回 null,所以我用 getValue() 替换了它。但是由于第一个 td 元素是一个 span,如果我们使用 getText(),它会返回 null。
无论如何我可以从上面的代码 sn-p 中跳过循环中的第一个 td。
更新: 这是我在 cmets 中没有正确渲染的内容:
$actual_Values[] = $row->find('css', 'input')->getValue();
【问题讨论】:
-
可以,但很可能需要使用 xpath。当
td有跨度和输入时,你能说出 html 的样子吗? -
人们对一个问题投反对票,甚至懒得发表评论,这太愚蠢了。绝对的疯子!!