2014-12-22 8 views
0

저는 TestFX에서 테스트 프로그램을 작성하고있는 JavaFX에 간단한 로그인 양식을 작성하고 있습니다. 내 TestFX 스크립트는 자동으로 텍스트 필드에 자격 증명을 입력하고 로그인 버튼을 클릭하면 더 잘 작동합니다.TestFX를 사용하여 밑줄이 포함 된 문자열을 텍스트 필드에 쓰는 방법은 무엇입니까?

그러나 스크립트에 밑줄이 포함 된 자격 증명을 입력하려면 밑줄이 올 때까지 밑줄과 유형을 입력하지 마십시오. 뒷줄 앞에 백 슬래시를 사용했지만 도움이되지 않았습니다.

다음은 내 로그인 페이지의 스크린 샷입니다.

enter image description here

다음은 내가 밑줄없이 문자열을 줄 때 잘 작동 내 테스트 스크립트입니다.

@Test 
public void invalidCredentialsShouldNotLogin() 
{ 
    controller.click("#username").type("invalid"); 
    controller.click("#password").type("invalid"); 
    controller.click("#button"); 

    verifyThat("#welcome", hasText("Login failed")); 
} 

는 그리고 이것은 거기에 밑줄 포함하고 의도 한대로 작동하지 않는 문자열을 입력하려고 스크립트이며, 예외를 유효하지 않은 키 코드를 제공합니다.

@Test 
public void invalidCredentialsShouldNotLogin() 
{ 
    controller.click("#username").type("user_name"); 
    controller.click("#password").type("invalid"); 
    controller.click("#button"); 

    verifyThat("#welcome", hasText("Login failed")); 
} 

이것은 위 코드의 출력입니다. 내가 밑줄 대신 콜론을 사용할 때

enter image description here

같은 일

발생합니다. 문제 해결을 도와주세요. 더 자세한 정보가 필요하면 알려주세요. 감사합니다

+0

TestFX에 대해 확실하지 않습니다. 그러나 표준'SendKeys' 모듈 (다른 언어들)은'{ENTER}'나'{DEL} '과 같은 니모닉 코드를 사용합니다. 어쩌면이 방향으로 인터넷 검색이 도움이 될 것입니다. –

답변

1

이 질문에 대한 답변을 얻었습니다. 실제로 밑줄이나 콜론과 같은 모든 특수 문자에는 이와 관련된 키 코드가 있습니다. 우리는 TestFX 스크립트를 사용하여 TextField에 타이핑하기 위해 그 키 코드를 사용해야합니다.

위의 질문에서 밑줄을 입력하고 싶습니다. 일반적으로 밑줄을 쳐 보면 시프트와 하이픈 (-)의 두 키가 함께 사용됩니다. 같은 방법으로 우리는이 두 키의 키 코드를 사용하여 TestFX 스크립트를 사용하여 밑줄을 입력합니다.

다음은 저에게 효과적이며 TextField에 밑줄이있는 코드입니다.

@Test 
public void enterCredentialsWithUnderscore() 
{ 
    TextField usernameField = (TextField)GuiTest.find("#username"); 
    if(username.indexOf("_") != -1) 
    { 
     String[] tokens = username.split("_"); 
     for(int i=0; i<tokens.length; i++) 
     { 
      if (i == 0) 
       controller.click(usernameField).type(tokens[i]); 
      else 
       controller.push(KeyCode.SHIFT, KeyCode.MINUS).type(tokens[i]); 
     } 
    } 
} 

KeyCode.MINUS는 하이픈 키의 키 코드입니다. 그리고 push (KeyCode.SHIFT, KeyCode.MINUS) 메서드는 두 버튼을 함께 푸시하여 밑줄을 입력합니다.

다음은 내가받은 출력의 스크린 샷입니다. 모든

enter image description here

감사합니다.

+0

명확히하기 위해이 대답에 동의해야합니다. – gontard