2017-02-01 2 views
0

tl; dr : Internet Explorer 내에서 XMLHttpRequest를 사용하여 VBA에서 POST 요청을 보내는 방법은 무엇입니까?VBA Internet Explorer에서 XMLHttpRequest를 보내십시오


저는 인터넷상의 페이지 사용을 자동화하고 있습니다. 아이디어는 Excel에서 시작하여 워크 시트에 일부 데이터를 수집 한 다음이 데이터를 인터넷 페이지로 전송하고 그 동안 일부 버튼을 클릭 한 다음 수동으로 작업하는 것입니다.

F12 개발자 도구를 사용하여 수동으로 실행하면 전체 프로세스가 기록됩니다. 인터넷 페이지의 텍스트 상자에 데이터를 가져 와서, 일부 자바 스크립트 이벤트가 XMLHttpRequest를 통해 POST 요청을 화재 장소 걸릴 : VBA에서 설명한 절차를 복제하여, enter image description here

이제을 (getElementById, .click(), .value=과를 사용하여 like), 해당 이벤트가 발생하지 않는 것처럼 보입니다. 위와 같은 POST 요청이 서버로 전송되지 않으며 추가 마스크가 열리지 않습니다. 이것이 필자가 textbox-filling-and-clicking 방식을 생략하고 단순히 POST 요청을 복제하기를 원하는 이유입니다.

Internet Explorer를 사용하여 VBA에서 어떻게 수행 할 수 있습니까?

면책 조항 : 웹을 통해 수 백 번 기술 된 MSXML2.serverXMLHTTP을 사용하여 POST 요청을 보내는 방법을 알고 있습니다. 그러나 항상 인터넷 익스플로러를 사용하거나 MSXML2.serverXMLHTTP을 사용하십시오. 그러나 Internet Explorer 내에서 요청이 필요합니다.

+2

실제 URL을 보지 않고는 대답 할 수 없습니다 - HTML 페이지의 코드가 응답 할 수있는 많은 이벤트가 있습니다 (흐림, 키 작동/위로, 포커스 등) –

+0

@TimWilliams : (i) is 발생하는 사건을 영리하거나 체계적인 방식으로 파악할 수 있습니까? (녹음과 시행 착오없이) (ii) 어쨌든, 저는 이벤트 재생 방식을 사용하고 싶지 않습니다. 나는 Internet Explorer에서 XMLHttpRequest를 사용하여 게시물 요청을 직접 실행하고 VBA에서는이를 통해 서버가 Javascript 이벤트에 의해 트리거되는 것과 동일한 결과를 볼 수 있도록합니다. – davidhigh

+0

예, 아마도 가능할 것입니다.하지만 페이지를 살펴보고 정확히 무슨 일이 일어나는지 알아야합니다. –

답변

0

이러한 링크는 유망 해 보입니다. VB5 | C# | Navigate method, 4th argument | Another VB example using StrConv for byte array conversion | 네비게이션 메서드를 사용하고 네 번째 인수에 바이트 배열로 채워진 데이터 만 사용하는 것처럼 보입니다. 위의 링크 중 하나가 오래되었지만 최신 링크가 매우 유사하여 인터페이스가 많이 변경되지 않았다고 생각합니다.

피드백을 보내주십시오.

관련 문제