2013-09-16 3 views
6

학습 목적으로 간단한 수락 테스트를 수행하려고합니다. 간단한 인증 시나리오입니다. 사용자가 /admin을 입력하고 기록하지 않으면 /login으로 리디렉션되어 양식을 채 웁니다.양식 필드를 채우기 위해 코드화를 얻을 수 없습니다.

1) Couldn't login with a password protected area in LoginCest.loginUserWithProperCredentials 
Guy couldn't fill field "username","rafael": Field matching id|name|label|value or css or xpath selector does not exist 

Scenario Steps: 
5. I fill field "username","rafael" <==== RED 
4. I see current url equals "/login" 
3. I am on page "/admin" 
2. So that I Perform administrative tasks 
1. As a Site Owner 

지금 여기 내보기입니다 : 내가 테스트를 실행하면

내가이 오류를 얻을 어떤 도움을 주시면 감사하겠습니다

class LoginCest 
{ 

    public function loginUserWithProperCredentials(WebGuy $I){ 
     $I->am("Site Owner"); 
     $I->wantTo("Login with a password protected area"); 
     $I->lookForwardTo("Perform administrative tasks"); 

     $I->amOnPage('/admin'); 
     $I->seeCurrentUrlEquals('/login'); 

     $I->fillField('username', 'rafael'); 
     $I->fillField("password", "123456"); 
     $I->click("Login"); 

     $I->seeCurrentUrlEquals("/admin"); 
     $I->see("Admin area", "h1"); 
    } 

} 

: 여기

//create.blade.php 
<!doctype html> 
<html> 
    <head> 
     <meta charset="utf-8"> 
     <title>Login</title> 
    </head> 
    <body> 
     <h1>Login</h1> 
     {{ Form::open() }} 
      <div> 
       {{ Form::Label('username', 'Username') }} 
       {{ Form::Text('username', '') }} 
      </div> 
      <div> 
       {{ Form::label('password', 'Password') }} 
       {{ Form::password('password', '') }} 
      </div> 
      <div> 
       {{ Form::submit('Login') }} 
      </div> 
     {{ Form::close() }} 
    </body> 
</html> 

그리고 테스트입니다 .

답변

1

당신은 HTML에서 사용자 이름의 XPath를 복사하고 쓸 수 있습니다 :

$I->fillField('//*[@id="addPosDialog"]/div/button','Username'); 

'//*[@id="addPosDialog"]/div/button이'- 거기 XPath를 붙여 넣습니다. xpath, name, id 및 기타 로케이터를 사용할 수 있습니다. fillField에 문제가 생겼을 때 나는 보통 이렇게하고 있습니다.

이 경우 HTML 코드가보기 코드보다 중요합니다. 조언을 통해 문제가 해결되지 않으면 HTML 코드를 볼 필요가 있습니다.

0

HTML 구문이 올바르지 않은 곳에서 문제가 발생했습니다. 그러면 php 브라우저가 제대로 작동하지 않습니다. 그렇다고하더라도 그것은 당신의 모범 에서처럼 보이지 않습니다.