2009-12-14 4 views
1

내가 사용 Process.Start("firefox.exe", "http://localhost/page.aspx"); 그리고 내가 어떻게 페이지가 실패하거나 아는 것을 알 수 있습니까? 또는 HttpWebRequest, HttpWebResponse 페이지를 통해 어떻게 알 수 있습니까?새로 시작한 브라우저 프로세스에서 페이지로드가 실패하는지 검색하는 방법은 무엇입니까?

내가 오류 정보를 반환 할 수있는 방법

HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create("somepage.aspx"); 
HttpWebResponse loWebResponse = (HttpWebResponse)myReq.GetResponse(); 
Console.Write("{0},{1}",loWebResponse.StatusCode, loWebResponse.StatusDescription); 

를 사용할 수 있습니까?

추가 플러그인 및 프레임 워크가 필요하지 않습니다. 난 단지 .NET

어떤 생각이

+0

좀 더 자세한 정보를 제공해 주시겠습니까? 예를 들어, 사용중인 기술로 질문에 태그를 지정하면 많은 도움이됩니다. –

+0

@boris callend : .net 3.5를 사용합니다. 몇 가지 페이지를 열 서비스 클래스가 있고이 페이지에서는 Page_load에서 뭔가 수행하는 메서드가 있습니다. 페이지가 실패하면 로그인해야합니다. – loviji

답변

4

사용 Watin 대신 Process.Start를의 파이어 폭스를 자동화하십시오하여이 문제를 선택합니다. 브라우저 자동화 프레임 워크를 사용하면 제대로 된 상황을 모니터링 할 수 있습니다.

http://watin.sourceforge.net/

편집 : 또한 구글 Webdriver http://google-opensource.blogspot.com/2009/05/introducing-webdriver.html

+0

그것에 대해 몰랐습니다. 체크 아웃할만한 가치가있어. –

+0

셀레늄 (seleniumhq.org)에서 웹 자동화 테스트를 수행합니다. –

2

당신이 아이 프로세스를 생성하는 경우를 참조하십시오, 그것은 매우 어려운 당신은 아마하지 않습니다 (각 브라우저의 특정 API를 사용해야 할 것 예를 들어, FF와 IE간에 동일해야합니다.

대부분의 경우 exe가 기존 인스턴스를 감지하여 거기에 요청을 전달하는 데 도움이되지 않습니다 (따라서 종료 코드를 신뢰할 수 없으므로 페이지가 올바른 exe에 요청되지 않았기 때문에).

개인적으로이 시나리오에서는 특정 브라우저를 사용하지 않습니다. 방금 URL을 실행하십시오 :

Process.Start("http://somesite.com"); 

이것은 사용자의 기본 브라우저를 사용합니다. 당신은 그것이 나타나기를 바랄 필요가 있습니다 - 당신은 많은 일을하지 않고서도 (신뢰성 있고 견고하게) 그것을 외부에서 확인할 수 없습니다.

또 다른 옵션은 데이터를 직접 (WebClient.Download*)을 읽는 것입니다 - 그러나 이것은

+0

감사합니다, 다른 방법이있을 수 있습니다, 나는 httpRequest를 사용해야합니다. – loviji

1

은 사용의 HttpWebRequest 클래스 또는 웹 클라이언트 클래스는이를 확인하는 등, 로그인, 사용자 에이전트 인식, 복잡한 쿠키 문제가 발생할 수 있습니다. URL이 없으면 Process.Start 뭔가를 반환합니다 생각하지 않습니다.

+0

고마워, 난 그렇게 생각, 내가 HttpWebRequest, HttpWebResponse를 사용하여 노력하고있어. – loviji

0

이 양식으로 페이지를 시작하지 마십시오. 대신 로컬 http://localhost:<port>/wrapper.html을 만들고 http://localhost/page.aspx을로드 한 다음 http://localhost:<port>/pass.html 또는 http://localhost:<port>/fail.html 중 하나를로드하십시오. localhost : 앱에서 구현하는 간단한 HTTP 서버 인터페이스입니다.

생각은 자바 스크립트가 안에 당신에게 훨씬 더 표준 브라우저의 외부 의 API를보다 브라우저를, API를 을 제공한다는 것입니다. wrapper.html의 Javascript는 이후의 리소스와 동일한 서버 및 포트에서 제공되기 때문에 현재 브라우저의 동일한 출처 정책을 충족해야합니다.