我正在编写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');
}
答案 0 :(得分:0)
您收到此错误是因为您没有扩展正确的类,并且您无法在当前类中看到find()
方法。
使用IDE编辑器可以帮助您防止出现这类问题,因为它应该为您提供该类中可用方法的提示。
例如,如果您正在使用页面对象,则LoginAuthContext
需要扩展Page
,否则对于经典方法,我认为您需要扩展Context
。