Behat - 检查列表元素包含内容

时间:2016-06-02 13:53:59

标签: selenium testing automated-tests behat mink

我有一个下拉菜单,其中包含有时是静态的,有时会更改的列表元素。我的主要目标是检查菜单是否包含一些内容[然后输出该内容并将其导出到报告中]。

我在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(),但没有任何成功。有任何想法吗? (奖励真棒点也帮助我完成了我的要求的第二步)

1 个答案:

答案 0 :(得分:0)

我认为我找到了一个解决方案,但我不确定它是否通过,因为它有效,或者因为它没有搜索任何内容并找到它。

    $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;
    }

有人可以代码审查一下吗?