문제

나는 몇 가지 자동화 작업을하고 있으며 사이트를 돌아 다니며 HTML 양식에 게시 할 수 있지만 이제는 새로운 도전에 반대합니다. Ajax 형태.

읽을 소스가 없기 때문에 C#에서 ajax 양식을 Progamically로 채울 수 있는지 궁금합니다. 현재는 보이지 않는 Axwebbrowser를 사용하고 있습니다.

도와 주셔서 미리 감사드립니다!

도움이 되었습니까?

해결책

예,하지만 일반 페이지와 AJAX 핸들러 페이지를 포함한 서버 페이지에 요청/응답을 요청하는 것이 좋습니다.

C#에서 사용해보십시오 WebRequest/Webresponse 또는보다 전문화 된 httpwebrequest/httpwebresponse 클래스.

Ajax는 JavaScript가 서버에 HTTP 요청을 할 수있는 기술의 "멋진"이름에 지나지 않습니다. 이는 일반적으로 JavaScript 발신자 (JSON으로 인코딩 된 Comonly Encoded)를위한 특수한 가벼운 컨텐츠를 생성하는 일부 처리기를 구현합니다.

따라서 Ajax 호출을 시뮬레이션하려면 대상 응용 프로그램 ( "게시하려는 웹 페이지"를 검사하고 Ajax 통신에 사용되는 형식을 확인한 다음 C#에서 페이지의 JavaScript 동작을 복제하기 만하면됩니다. WebRequest/Webresponse 클래스 사용.

보다 개똥 벌레 - 웹 페이지를 검사하여 호출이 어떤 페이지, 어떤 페이지 및 해당 페이지에 응답하는지 결정할 수있는 훌륭한 도구입니다. Ajax 통화를 검사하는 데 꽤 잘 작동합니다.

다음은 웹 요청을 수행하는 방법에 대한 매우 간단한 예입니다.

HttpWebRequest wReq = (HttpWebRequest)WebRequest.Create("http://www.mysite.com");

using (HttpWebResponse resp = (HttpWebResponse)wReq.GetResponse())
{
   // NOTE: A better approach would be to use the encoding returned by the server in
   // the Response headers (I'm using UTF 8 for brevity)
   using (StreamReader sr = new StreamReader(resp.GetResponseStream(), Encoding.UTF8))
   {
       string content = sr.ReadToEnd();
       // Do something with the content
   }
}    

게시물도 요청이지만 다른 방법이 있습니다. 보다 이 페이지 매우 간단한 게시물을 수행하는 방법의 예.

편집하다 - FireBug로 페이지 동작 검사에 대한 자세한 내용

복제하려는 페이지를 검사한다는 것은 페이지와 서버 간의 정보 흐름을 결정하기 위해 도구 (Firebug -On Firefox에서 Firebug를 사용)를 사용하는 것입니다.

FireBug를 사용하면 "NET"및 "콘솔"패널을 사용하여이를 수행 할 수 있습니다. NET 패널에는 페이지를로드하는 동안 브라우저에서 실행 된 모든 요청이 나열됩니다. "콘솔"은 페이지와 페이지가로드 된 후 발생하는 서버 간의 통신을 나열합니다. 페이지가로드 된 후 발생하는 통신은 본질적으로 복제하려는 AJAX 호출입니다 (참고 :이 작업을 위해 FireBug에서 네트워크 모니터링을 활성화해야합니다).

체크 아웃 Michael Sync의 자습서 FireBug에 대한 자세한 내용을 보려면 콘솔 패널을 실험하여 AJAX 요청에 대한 자세한 내용을 알아보십시오.

"webRequest/webresponse를 사용하여 C#의 페이지의 동작을 복제"하는 것에 대해 - 당신이 알아야 할 것은 앞서 말한 것처럼 JavaScript Ajax 호출은 HTTP 요청에 지나지 않는다는 것입니다. Javacript가 웹 서버에 "뒤에서"또는 대역 밖에서 "javacript가"배후 "를 만드는 HTTP 요청입니다. 이것을 복제하기 위해, 그것은 위에서 보여준 것처럼 정상적인 get 또는 정상적인 게시물을 복제하는 것과 실제로 다르지 않습니다. 그리고 이것이 Firebug가 들어온 곳입니다. 이를 사용하여 JavaScript가 만들기대로 요청을 볼 수 있습니다. 콘솔 패널을보고 요청 메시지가 어떻게 보이는지 확인하십시오.

그런 다음 httpwebrequest/httpwebresponse를 사용하여 위와 동일한 기술을 사용하여 JavaScript와 동일한 유형의 요청을 대신 C#에서만 수행 할 수 있습니다.

Gregg, 나는 이것이 나의 대답을 조금 명확하게 설명하기를 바랍니다. 그러나 이것을 넘어서서 Firebug와 함께 연주하고 HTTP 프로토콜이 어떻게 작동하는지, Ajax가 기술로 작동하는 방식에 대해 더 많이 배우는 것이 좋습니다.

다른 팁

셀레늄을 사용하는 것을 보셨습니까? AFAIK, C#에 테스트 케이스를 작성할 수 있으며 테스터가 AJAX 활성화 ASP.NET 사이트를 UI 테스트하기 전에 성공적으로 사용한 것을 알고 있습니다.

http://seleniumhq.org/

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top