找到字段错误:调用未定义的方法LoginAuthContext :: find()

时间:2017-06-25 06:07:07

标签: php behat mink

我正在编写behat步骤定义,以自动提交以下内容中的用户名和密码字段"登录"页。我使用xpath选择器得到以下错误。请告诉我做错了什么?谢谢!

  

致命错误:调用未定义的方法LoginAuthContext :: find()in   第20行/behatlogin/features/bootstrap/LoginAuthContext.php

登录表格

<form action="/auth" method="POST" class="ng-pristine ng-valid">
        <input type="text" name="uname" id="uname" class="form-control" placeholder="User name" required="" autofocus="">
        <input type="password" name="pass" id="pass" class="form-control" placeholder="Password" required="">
        <button class="btn btn-lg btn-primary btn-block shadow1" type="submit">Sign in</button>
</form>

LoginAuthContext步骤定义

/**
 * @When /^I am logged in$/
 */
public function iAmLoggedIn()
{
    $this->find('xpath','uname')->setValue('testuname');
    $this->findField('xpath','pass')->setValue('testpass');
    $this->pressButton('Sign in');
}

1 个答案:

答案 0 :(得分:0)

您收到此错误是因为您没有扩展正确的类,并且您无法在当前类中看到find()方法。

使用IDE编辑器可以帮助您防止出现这类问题,因为它应该为您提供该类中可用方法的提示。

例如,如果您正在使用页面对象,则LoginAuthContext需要扩展Page,否则对于经典方法,我认为您需要扩展Context