2017-03-22 1 views
0

나는 Vaadin에 저장 버튼과 텍스트 필드를 만들었습니다. 저장 버튼 상태 (활성화/비활성화)는 ValueChangeListener로 입력 된 텍스트 필드에 바인드됩니다. 텍스트 필드가 비어 있으면 저장 버튼을 사용 중지해야합니다. 그렇지 않으면 사용 가능하게 설정해야합니다.셀레늄으로 테스트 바딤 텍스트 필드

아주 가볍게 작동하지만 Selenium이 텍스트를 올바르게 설정하지 않습니다. Selenium이 텍스트 입력을 설정하는 것을 볼 수 있지만 저장 버튼이 활성화되지 않습니다.

new Actions(getDriver()).moveToElement(wrappedElement) 
    .click() 
    .sendKeys(SELECT_ALL_SHORTCUT, Keys.DELETE) 
    .sendKeys(wrappedElement, text) 
    .sendKeys(Keys.TAB) 
    .moveByOffset(1, 1) 
    .perform(); 

나는 텍스트를 설정하는 여러 가지 방법을 많이, 난 적어도 가끔 작동, 텍스트가 설정되어 브라우저에서 볼 수 있지만, 항상 변경 나던 버튼 상태를 저장할 수 있습니다했습니다.

답변

0

textField에 대한 포커스 이벤트가 트리거되지 않아 그 순간에 값이 올바르게 설정되지 않습니다. 방아쇠를 당기는 가장 쉬운 방법은 저장 버튼을 확인하기 전에 다른 작업을 수행하는 것입니다. 예를 들어 click()을 다른 텍스트 필드에서 수행 할 수 있으므로 textField가 포커스를 잃어서 텍스트가 올바르게 저장됩니다. 또 다른 옵션은이 이벤트를 트리거하는 일부 자바 스크립트 함수이지만이 방법은 더 복잡한 솔루션이며 페이지 구현에 따라 다릅니다.

+0

나는 또한 텍스트를 설정 한 후에 텍스트 필드를 탭 아웃하도록 Selenium에게 말한 이유가 포커스가 문제라고 생각했습니다. 저장 버튼에 바인드 된 텍스트 필드에 입력을 설정 한 후에 다른 텍스트 필드에 일부 입력을 설정 했으므로 해결책이 아닙니다. – unrated

+0

다른 필드에서 입력을 설정하는 대신 click() 액션 만 수행하십시오. TAB 조치는 이러한 종류의 상황에서도 도움이되지 않습니다. 그게 전부 야. 다른 해결책이 없어. 도움이 안되면 미안해. :) – acikojevic