0

現在、新しい 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">
4

2 に答える 2

0

アサーションをに変更します

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

SelectedItemはOption型であり、「Organisations」はString型であるため、2つの値を比較することはできません。Textプロパティを使用すると、必要な結果が得られます。

編集:あなたの編集に関する限り-はい、あなたはテキスト「組織」を持つ要素を持っていません。タイトルまたは値など、既存の属性を使用して、選択するものを見つける必要があります。したがって、エラーの解決策は、Findクラスを使用することです。

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

また

ddl.Option(Find.ByValue("account")).Select();
于 2012-04-27T14:22:43.150 に答える
0

フレーム内のポップアップです。その場合は、フレームからトラバースする必要があります。それがどうなるか教えてください。

于 2012-05-09T10:17:55.030 に答える