2013-06-14 4 views
1

나는 셀레늄 RC에서 Webdriver로 마이그레이션했습니다. Selenium RC에서 잘 작동하는 데 사용되는 구분 기호 탭이 포함 된 텍스트를 입력합니다. 그러나 webdriver를 사용할 때 탭을 입력하면 다음 입력으로 포커스가 이동합니다.Selenium Webdriver를 사용하여 텍스트 영역에 TAB 입력

샘플 텍스트 :

if(text.contains("\t")) 
    { 
     data = text.split("\t"); 
     for (String str : data) 
     { 
     element.sendKeys(str); 
     element.sendKeys(Keys.TAB); 
     } 
    } 
    else 
    { 
     element.sendKeys(text); 
    } 

내가 elements.sendKeys("\t")뿐만 아니라 elements.sendKeys("\\t")를 사용하여 시도 :

Name Age 
Mark 35 

나는 다음과 같은했다.

어떻게해야합니까?

미리 감사드립니다.

+0

텍스트 입력란에 Tab 키를 보내면 다음 입력으로 이동하지 않으면 어떻게 될 것으로 예상됩니까? – Amey

+0

질문에 지정된 샘플 텍스트를 텍스트 영역에 그대로 입력해야합니다. – aradhak

+0

수동으로 처리 할 수 ​​있습니까? 브라우저를 열고 "마크"를 입력하고 다음 입력 필드로 이동하지 않고 Tab 키를 누르는 것과 같이? – Amey

답변

2

고급 작업에는 Actions 클래스를 사용할 수 있습니다. 이 사이트 참조 http://www.guru99.com/keyboard-mouse-events-files-webdriver.html

+0

출처를 보내 주셔서 감사합니다. 컨텍스트 메뉴를 사용하여 텍스트 영역에 데이터를 붙여 넣으려면'Actions action = new Actions (driver); action.contextClick (element) .sendKeys (Keys.ARROW_DOWN) .sendKeys (Keys.RETURN) .build(). perform();'어떻게 텍스트를 클립 보드에 복사합니까? – aradhak

+0

클립 보드에 텍스트를 복사하려면, Toolkit.getDefaultToolkit(). getSystemClipboard(). setContents (new StringSelection (text), null); element.sendKeys (Keys.CONTROL + "v"); 여기서 변수 text에는 텍스트 영역에 붙여 넣을 데이터가 들어 있습니다. – aradhak

+0

타사 링크의 관련 부분을 인용하는 것이 좋습니다. 링크가 여러 가지 이유로 다운되면 귀하의 대답은 거의 의미가 없습니다. –

0

댓글에서 이미 말한 것처럼 sendKeys의 사용은 사용자가 브라우저의 일반 사용자 인 것처럼 작동합니다. 이는 브라우저가 다음 입력에 집중할 것임을 의미합니다. 입력에 TAB을 추가해야한다면 솔루션은 execute JavaScript이라고 생각합니다.

JavascriptExecutor js = (JavascriptExecutor) driver; 
js.executeScript("document.getElementById('" + inputId + "').value = '\\t';"); 
관련 문제