ABC
문자열을 Windows 파일 대화 상자의 입력 필드에 보내려고합니다. 이 코드 라인을 사용하면 포커스를 올바른 요소로 설정할 수 있습니다. 커서가 깜박입니다.Keys를 Windows 파일 대화 상자로 보내기
var filedialogOverlay = drv.SwitchTo().ActiveElement();
그러나 다음 코드는 문자열을 요소에 쓰지 않습니다.
Thread.Sleep(1000);
filedialogOverlay.SendKeys("ABC");
편집 : 파일 업로드 프롬프트가 나는 테스트 할 웹 사이트가 표시됩니다. 블랙 박스 테스트 때문에 소스 코드를 볼 수 없습니다. GUI를 분석 할 수있는 도구가 있습니까?
입력 요소를 마우스 오른쪽 버튼으로 클릭하면 다음과 같은 선택을합니다.
drv.FindElement(By.XPath("//input[@type='file']")).SendKeys("ABC");
추신 : 당신이 파일을 업로드해야하는 경우
http://www.cumc.columbia.edu/it/howto/remote/img/dnuploadfile25.jpg와 같은 파일 업로드 프롬프트를 의미하는 경우 코드가 작동하지 않습니다. 'drv.SwitchTo(). ActiveElement();'는 현재 집중하고있는 요소로 전환 할 수 있습니다. 커서가있는 텍스트 입력 필드 ... 파일을 업로드하려면 파일 경로를''요소로 보내야합니다. – Andersson
'ActiveElement()'메소드는 파일이 아닌 페이지의 활성 요소를 반환합니다 대화. Selenium은 파일 대화 상자를 지원하지 않지만''요소에서 파일의 경로와 함께 직접'Sendkeys'를 호출하여 파일 업로드를 지원합니다. –
@Florent B. 대답 전체 코드를 보여 주시겠습니까? – kame