2013-01-18 2 views
2

입력 할 텍스트를 설정하고 숨겨진 링크를 클릭하려고합니다 (바보 같지만 다른 문제의 해결 방법입니다). 나는 그것을 디버깅 할 때, 내가 볼 수숨겨진 입력에 텍스트를 설정할 수 없습니다.

WebElement element = webDriver.findElement(By.cssSelector("input[id$='inputId']")); 
((JavascriptExecutor) webDriver).executeScript("arguments[0].style.visibility='visible';", element); 
element.sendKeys(text); 

같은 내가 해봤 뭔가 내가 이러한 일의

((JavascriptExecutor) webDriver).executeScript("arguments[0].setText(" + text + ")", element); 
or "arguments[0].text="someText" 

없음을 시도하지했습니다 시험은 항상

java.lang.IllegalArgumentException: Argument is of an illegal type: $Proxy30 

로 끝 해당 요소를 올바르게 찾을 수 있지만 스크립트를 실행하는 동안이 예외가 발생합니다. 여기서 내가 뭘 잘못하고 있니?

P. 이 링크를 어떻게 클릭합니까? JS Executor도 사용해야합니까?

반고체 브라우저에서

답변

2

, 당신도 그냥 실행, 자바 스크립트를 통해 요소를 검색 할 수 있습니다

var elem = document.querySelector("input[id$='inputId']"); 
elem.value = "some text"; 

는 또한 value의 사용을 확인합니다. 나는 setText() 메서드를 보지 못했거나 요소에 text 속성을 보지 못했습니다. 그래서 나는 아마 잘못 생각합니다. 하지만 입력 값은 value 속성으로 설정해야합니다. WebDriver에서

는 :

나는 곳을 본 적이
JavascriptExecutor js = (JavascriptExecutor)webDriver; 
js.executeScript(
    "document.querySelector(\"input[id$='inputId']\").value = '" + someText + "';"); 
+0

, 아마이 방법을 시도하는 바보 같은 생각이었다. 어쨌든 WebDriver에서 코드를 사용하려면 어떻게해야합니까? 순수한 JavaScript 만 볼 수 있습니다. –

+0

JS를 실행하는 방법을 알고 있다고 생각했습니다 ... 답변을 편집하여 사용해보십시오. –

+0

미안 해요, 금요일이야. 나는 아주 큰 두뇌를 가지고있다 :-) 그것은 작동한다. 고마워. –

관련 문제