2012-04-27 5 views
0

현재 WatiN을 설정하여 새 CRM 솔루션의 자동화 된 테스트를 수행하려고합니다. 고급 찾기라는 화면 버튼이 있습니다.
이 버튼을 클릭하면 새 팝업이 열립니다. 이 팝업에는 드롭 다운 메뉴가 있으며이를 클릭하고 옵션을 선택하고 싶습니다.WatiN - 팝업 메뉴에서 드롭 다운 메뉴 선택

팝업 창에 대한 코드는 다음과 같습니다

다음
td class="ms-crm-AdvFind-Label"><br> 
td class="ms-crm-AdvFind-EntityList"> <br> 
select name="slctPrimaryEntity" class="ms-crm-SelectBox " id="slctPrimaryEntity"  Sort="ascending" defaultSelected="activitypointer"><br> 
option title="Organisations" value="account"> 

내가 가진 WatiN 코드가 될 때 : 내가 잘못 갈 곳

ie.Image(Find.ByClass("ms-crm-ImageStrip-advancedfind32")).Click(); 
IE poppedUpBrowser = IE.AttachTo<IE>(Find.ByTitle("Advanced Find - Microsoft Dynamics CRM")); 
SelectList ddl = poppedUpBrowser.SelectList(Find.ByClass("ms-crm-AdvFind-Label")&(Find.ById("slctPrimaryEntity")));<br> 
ddl.Option("Organisations").Select();<br> 
Assert.That(ddl.SelectedItem.Equals("Organisations"));<br> 

누군가가 지적하시기 바랍니다 수 있습니다.

감사합니다.

편집 :

테스트를 실행할 때 나는 현재이 오류 메시지가 점점 오전 :

Failure: WatiN.Core.Exceptions.ElementNotFoundException : Could not find OPTION element tag matching criteria: Attribute 'innertext' equals 'Organisations' ignoring case at http://website 

Stack Trace: 
at WatiN.Core.Element.get_NativeElement() 
at WatiN.Core.Element.GetAttributeValueImpl(String attributeName) 
at WatiN.Core.Component.GetAttributeValue(String attributeName) 
at WatiN.Core.Option.setSelected(Boolean value, Boolean WaitForComplete) 
at WatiN.Core.Option.Select() 

편집 : 더 HTML 코드 :

<tbody> 
<tr height="100%"> 
<td class="AdvFind_td_FindBody"> 
<span id="advancedFind"> 
<table class="ms-crm-AdvFindControl" id="advFind" cellSpacing="0" cellPadding="0" EntityName="activitypointer" UIProvider="" DataProvider="" EntityTypeCode="4200" DisableValueControlInSimpleMode="0" DistinctFetch="1" SaveChangesAlert="1" IncludeUserQuery="1" IncludeSystemQuery="1" ValidQueryType="0" FilterControlVisible="1" TitleVisible="0" EntityListVisible="1" RelatedEntitiesVisible="1" QueryListVisible="1" CanCreateUserQuery="1" CanWriteUserQuery="1" IncludeAPIQuery="0" FetchMode="2" Buttons="1023" Modes="3" Mode="1" aliasesInInitialFetch=""> 
<tbody> 
<tr class="ms-crm-AdvFind-TitleArea"> 
<td> 
<table class="ms-crm-AdvFind-Title-table" style="table-layout: fixed;"> 
<tbody> 
<tr> 
<td> 
<table> 
<tbody> 
<tr> 
<td class="ms-crm-AdvFind-EntityList"> 
<select name="slctPrimaryEntity" class="ms-crm-SelectBox " id="slctPrimaryEntity" Sort="ascending" defaultSelected="activitypointer"> 
<option title="Activities" value="activitypointer"> 
<option title="Addresses" value="customeraddress"> 

답변

0

는 프레임 내부의 팝업가 : 그래서 오류에 대한 해결 방법은 찾기 클래스를 사용하는 것입니다. 그렇다면 프레임에서 이동해야합니다. 어떻게되는지 알려주세요.

+0

예, 팝업에 프레임이 있었는데, 그걸 발견하고 아래에서 정보를 사용하여 항목을 선택했습니다. – user1361245

0

변경

Assert.That(ddl.SelectedItem.Text.Equals("Organisations")); 
에 어설

세 lectedItem은 Option 유형이며 "조직"은 String 유형이므로 두 값을 비교할 수 없습니다. Text 속성을 사용하면 필요한 결과를 얻을 수 있습니다.

편집 :은 지금까지 당신의 편집 간다 - 그래, 당신이 텍스트 "조직"인 요소가 없습니다. 소유하고있는 기존 속성 (제목 또는 값)을 사용하여 선택하려는 항목을 찾아야합니다.

ddl.Option(Find.ByTitle("Organisations")).Select(); 

또는

ddl.Option(Find.ByValue("account")).Select(); 
+0

안녕하세요. 도움을 제공해 주셔서 감사합니다.
나는 당신이 제안한대로 여전히 새로운 줄로 위와 같은 오류가 발생하고 있습니다.
내가 시도 할 수있는 뭔가가 있습니까? 필요한 경우 사이트에서 더 많은 코드를 추가 할 수 있습니다. 감사. – user1361245

+0

잘 선택 목록의 HTML 도움이 될 것입니다 – t3hn00b

+0

SelectList 자바 스크립트에 의해 만들어진 경우 문제가 될 수 있을까요? F12 Developer Tools를 사용하여 페이지를 볼 때, 생성 된 HTML을 얻었지만, 페이지 DOM을 살펴보면 스크립트에서 모두 볼 수 있습니다. – user1361245

관련 문제