Behat - 检查列表元素是否包含内容
Behat - Check list element contains content
我有一个包含列表元素的下拉菜单,这些元素有时是静态的,有时是变化的。我的主要目标是检查菜单是否包含一些内容[然后输出该内容并将其导出到报告中]。
我在 FeatureContext.php 中创建的函数如下所示:
/**
* @Then /^I check content exists for element "([^"]*)"$/
*/
public function iCheckElementContent($locator)
{
//check element exists on page
$element=$this->assertSession()->elementExists('css', $locator);
//check element content is not empty (returns exception if true)
if ( empty($this->getPage()->find('css', $locator)->getText()) ) {
throw new Exception;
}
}
如您所见,它基于对有关此功能的其他问题的回复。然而,我的问题是它似乎不喜欢 getPage()
参数。我得到的错误是:
PHP Fatal error: Uncaught Error: Call to undefined method FeatureContext::getPage()
我也试过改成getValue(),但没有成功。有任何想法吗? (还帮助我完成了我的第二步要求的额外积分)
我想我找到了一个解决方案,但我不确定它是否通过了,因为它有效,或者因为它没有搜索任何东西并找到了它。
$session = $this->getSession();
$element = $session->getPage()->find('css', $locator);
//check element content is not empty (returns exception if true)
if (empty ($element->getText()) ) {
throw new Exception;
}
有人可以对此进行代码审查吗?
我有一个包含列表元素的下拉菜单,这些元素有时是静态的,有时是变化的。我的主要目标是检查菜单是否包含一些内容[然后输出该内容并将其导出到报告中]。
我在 FeatureContext.php 中创建的函数如下所示:
/**
* @Then /^I check content exists for element "([^"]*)"$/
*/
public function iCheckElementContent($locator)
{
//check element exists on page
$element=$this->assertSession()->elementExists('css', $locator);
//check element content is not empty (returns exception if true)
if ( empty($this->getPage()->find('css', $locator)->getText()) ) {
throw new Exception;
}
}
如您所见,它基于对有关此功能的其他问题的回复。然而,我的问题是它似乎不喜欢 getPage()
参数。我得到的错误是:
PHP Fatal error: Uncaught Error: Call to undefined method FeatureContext::getPage()
我也试过改成getValue(),但没有成功。有任何想法吗? (还帮助我完成了我的第二步要求的额外积分)
我想我找到了一个解决方案,但我不确定它是否通过了,因为它有效,或者因为它没有搜索任何东西并找到了它。
$session = $this->getSession();
$element = $session->getPage()->find('css', $locator);
//check element content is not empty (returns exception if true)
if (empty ($element->getText()) ) {
throw new Exception;
}
有人可以对此进行代码审查吗?