2016-06-01 6 views
1

객관식 테스트를 제공하는 웹을 만들고 있지만 인간적인 방법으로 테스트하는 것은 너무 습관적입니다. 나는 웹 브라우저에서 질문의 모든 A (또는 B, C, D) 라디오 버튼을 확인하는 데 도움이되는 간단한 C# .Net winform 프로그램을 작성하려고합니다. winform 응용 프로그램이 그렇게 할 수 있을지 궁금합니다. 읽기타사 프로그램을 사용하여 라디오 버튼을 자동으로 확인하는 방법

감사합니다 :) 내가 이해에서

답변

1

, 당신의 주요 목표는 C#을 윈폼 응용 프로그램을 작성, 단순히 웹 양식을 테스트하지 않는 것입니다. 따라서 웹 사이트를 테스트 할 전용 C# 응용 프로그램을 만드는 데 시간을 보내는 대신 헌신적 인 웹 테스트 솔루션을 살펴 보시기 바랍니다. 이미 여기에 매우 비슷한 질문이있다 : 당신이 마음에 들지 않으면 How apply Unit tests in ASP.NET webforms

것은 다음 다른 옵션은 FireFox iMacros extension에 대한 테스트 스크립트를 생성하는 것입니다. 구문은 매우 간단합니다.

일반적으로 말해서 웹 양식을 테스트하기위한 기존 솔루션의 주제를 조사해야합니다. 이러한 목적으로 전용 솔루션을 만드는 것은 바람직하지 않습니다.


편집 :

좋아, 난 당신이, 윈폼에서이 솔루션을하는 것이 내 대답을 해결할 수 있습니다 것이 중요하다고 볼 수 귀하의 코멘트에서. 다음 단계를 수행 윈폼에서이 작업을 수행하려면

  1. WebBrowser 클래스를 사용하여 - 당신의 WinForm에 관련 WebBrowser 컨트롤을 추가합니다.
  2. 버튼을 추가하면 "btnTest"라고 할 수 있습니다.
  3. 편집기에서이 버튼을 두 번 클릭하면 btnTest_Click (...) 메소드 스텁이 만들어집니다.
  4. 코드에서 원하는 브라우저 주소 문자열을 string address = @"D:\path\to\my\file.html"과 같이 설정하거나 원하는 경우 http : // 주소를 사용하십시오. 그래서처럼 WebBrowser.Navigate 방법을 사용하여이 주소로
  5. 이동 : webBrowser.Navigate(new Uri(address));

이 할 수 InitializeComponent(); 또는 모든 곳에서 원하는 이후를 Form1의 생성자의 모든 실행 (아마도 주소 텍스트 상자와 함께 또 다른 버튼?). 테스트 버튼 코드 용입니다. 테스트를 수행하려면 WebBrowser.Document's methods을 사용하여 HtmlElement 초를 가져와 작업을 수행하십시오. 자세한 내용은 제공된 설명서 링크를 참조하십시오.

몇 가지 예 :

HtmlElement checkboxGenderFemale = webBrowser.Document.GetElementById("female"); 
checkboxGenderFemale.InvokeMember("CLICK"); 

이 클릭을 시뮬레이션하고, 지정된 체크 박스를 확인합니다. 모든 요소에 ID를 할당해야합니다. 텍스트 입력을 작성하려면이 코드를 사용할 수 있습니다 : 당신이 볼 수 있듯이

HtmlElement nameInput = webBrowser.Document.GetElementById("firstname"); 
nameInput.SetAttribute("value", "NewName"); 

, 당신은 쉽게 요소의 속성을 클릭을 시뮬레이션하고 수정할 수 있습니다. 이 코드 예제를 btnTest_Click(...) 메서드에 넣고 작동 방법을 확인할 수 있습니다. Form1의 생성자에서 탐색을 완료했다면 이미로드 된 페이지로 폼이 열립니다. btnTest를 클릭하면 관련 테스트가 수행됩니다.

+0

사실 저는이 C# winform을 작성하는 데 정말로 관심이 있습니다. 더 배우기 위해 글을 쓰고 싶습니다. 필자 자신의 소프트웨어를 쓰고 사용하기 때문에 다운로드하지 않으려 고합니다. 취미 중 하나입니다. – 123iamking

+1

내가 참조. WinForms가 솔직히이 질문의 주요 초점이라고 생각하지 않았으며 웹 테스트라고 생각했습니다. 관련 정보로 내 게시물을 업데이트했습니다. 희망이 도움이됩니다. – pKami

+0

도움을 주셔서 감사합니다. 그러나 webBrowser.Navigate (새 Uri (address))를 사용하여도 webBrowser.Document가 null이라는 문제가 있습니다. ,하지만 내가 원하는 것은 현재의 Firefox 브라우저의 탭에서 그것을 클릭하는 것이므로 브라우저에 명확하게 표시되어 있습니다. – 123iamking