我有一个包含HTML的选择列表:
<select style="background-color: rgb(255, 255, 255);" id="advFindE_fieldListFLDCTL" class="ms-crm-SelectBox" Sort="ascending" defaultSelected="-1">
<optgroup id="fld" label="Fields">
<option title="Case" value="il_caseid" datatype="lookup" namemaxlength="200" nameattr="il_caseidname" lookupstyle="single" lookuptypenames="il_protectionworksheet:10093:Protection Worksheet" lookuptypes="10093">Case</option>
<option title="Created By" value="createdby" datatype="lookup" namemaxlength="320" nameattr="createdbyname" lookupstyle="single" lookuptypenames="systemuser:8:User" lookuptypes="8">Created By</option>
...
<optgroup id="ent" label="Related">
...
</optgroup></select>
对于我的生活,我无法通过watin选择“创建者”选项。我不确定它是否因为optgroup元素或者是什么。我几乎尝试了几乎所有我能想到的:
advancedFindWindow.Frame(CRMConstants.contentIFrame).SelectList("advFindE_fieldListFLDCTL").Option("Created By").Select();
或
advancedFindWindow.Frame(CRMConstants.contentIFrame).SelectList("advFindE_fieldListFLDCTL").Option("Created By").Click();
或
advancedFindWindow.Frame(CRMConstants.contentIFrame).Div("advFindE_fieldListFLDLBL").Focus();
advancedFindWindow.Frame(CRMConstants.contentIFrame).Div("advFindE_fieldListFLDLBL").Click();
Thread.Sleep(250);
advancedFindWindow.Frame(CRMConstants.contentIFrame).SelectList("advFindE_fieldListFLDCTL").Focus();
advancedFindWindow.Frame(CRMConstants.contentIFrame).SelectList("advFindE_fieldListFLDCTL").Click();
SendKeys.SendWait("Created By");
Thread.Sleep(1000);
SendKeys.SendWait("{ENTER}");
然而,这些似乎都不起作用。最后一次尝试确实选择了一个选项,但由于某种原因它会选择一个完全不同的选项我完全无能为力。任何想法都会有所帮助。
答案 0 :(得分:0)
如果您按值选择项目将会更容易,因为这些项目的变化往往比文本本身更少。变化很简单:
advancedFindWindow.Frame(CRMConstants.contentIFrame).SelectList("advFindE_fieldListFLDCTL").SelectByValue("createdby");
如果这不能解决您的问题,请指出您要使用的页面,我将为您创建代码,以便您选择正确的选项。