如何使用Codeception获取一个元素?

3

假设我们有以下HTML代码:

<div>
  <p id="fruit">Apple</p>
</div>

我该怎么通过 Codeception 获取 #fruit 的内部 HTML 并检查它?
2个回答

5

看起来,Codeception在这些情况下使用executeJSexecuteInSelenium(不推荐)。

以下示例使用JQuery和executeJS

<?php
  $fruitVal = $I->executeJS('return $(#fruit).val()');
?>

更多内容请参阅:Codeception文档:executeJS


事实证明,处理这种情况还有另一种“更自然”的方法:

以下是一个使用grabAttributeFrom方法的示例:

<?php
  $fruitVal = $I->grabAttributeFrom('#fruit', 'innerHTML');
?>

更多内容请参见:Codeception文档:grabAttributeFrom


1
顺便提一下,不确定在最新的codeCeption中是否仍然可以使用innerHTML进行HTML解析。我尝试了一个超级简单的测试多次,但每次都返回null。 - Robert Sinclair

1
$fruitVal = $I->grabAttributeFrom('#fruit', 'innerHTML');

不再适用。

请使用以下替代方法:

$fruitVal = $I->grabTextFrom('#fruit');

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接