다음은 시나리오입니다.재구성을위한 탭
CefSharp 브라우저를 통해 페이지를로드하고 있습니다. 사용자가 특정 단추 (웹 페이지가 아닌 양식에서)를 클릭하면 페이지가 재구성에 집중해야합니다.
나는 captcha로 탭하기 위해 SendKeys를 사용하려고 시도했지만 한 번 누르면 탭이 여러 번 등록되고 대신 captcha의 오른쪽 하단에있는 'Terms'링크에 초점을 맞춘다. 확인란.
또한 chromeBrowser.ExecuteScriptAsync() 메소드를 사용하여 페이지에서 javascript를 실행 해 보았습니다. 성공적으로 텍스트 상자에 집중할 수 있으며 해당 텍스트 상자에서 키 누르기 이벤트를 실행할 수도 있지만 이전 텍스트 상자에서 탭 키 누르기 이벤트를 실행하면 recaptcha는 여전히 강조 표시되지 않습니다.
chromeBrowser.Focus();
chromeBrowser.ExecuteScriptAsync("document.getElementsByClassName('txtBox')[0].Focus();" +
"document.getElementsByClassName('txtBox')[0].value = 'test string';")
SendKeys.Send("{TAB}");
SendKeys.Send("{ENTER}");
나는 또한 탭 참으로 내가 페이지 검사에 recapctha에 보여줍니다 모든 클래스 명 getElementsByClassName을 시도했습니다
chromeBrowser.Focus();
chromeBrowser.ExecuteScriptAsync("document.getElementsByClassName('txtBox')[0].addEventListener('keypress', function(){" +
"alert('something was pressed!');});" +
"document.getElementsByClassName('txtBox')[0].focus();" +
"document.getElementsByClassName('txtBox')[0].value = 'test value';" +
"var e = document.createEvent('KeyboardEvent');" +
"e.initKeyboardEvent('keypress', true, true, document.defaultView, 9, 0, '', false, '');" +
"document.getElementsByClassName('txtBox')[0].dispatchEvent(e);");
'을 누르면'되고 있음을 확인하는 이벤트 리스너를 추가 한 그런 다음에 포커스를 설정하십시오. 나는 recaptcha iFrame의 ID에 getElementById를 시도하고 그것에 포커스를 설정했습니다. captcha에 초점을 맞춘 것은 없습니다.
나는 생각이 없습니다. 어떤 도움을 주시면 감사하겠습니다.
'WinForms' * 및 *'WPF'에 해당합니까? 명확히하기 위해 질문에 태그를 추가 할 가치가 있습니다. :-) – TEK
WinForms이 경우 – TheEvilMetal