我尝试自动化的产品有一个来自.Net的自定义组合框控件。
控件的类型为<input>
,我只能用起始字母键入n search。
当我尝试使用WebDriver访问<select>
元素时,它表示无法在<input>
字段上执行操作。
当我尝试在.Sendkeys
上执行iWebElement
时,它只能选择带有起始文字的值。
有没有办法使用WebDriver使用整个文本选择组合框值?
示例DOM采用以下格式
<input name="icombobox_Text" tabIndex="7" title="Click to select theValue" class="ComboBox_Normal TxtBox_Css" id="icombobox_Text" accessKey="L" onkeydown="return C28.KeyDown();" onkeyup="return C28.KeyUp();" onkeypress="return C28.KeyPress();" onclick="$_('C28','TextClick')" onfocus="$_('C28','Focus')" onblur="$_('C28','Blur')" onselectstart="$_('C28','SelectStart')" onpaste="return false" oncontextmenu="return C28.KeyRightClick()" type="text" maxLength="255" maxSize="10" minSize="5" AUTOCOMPLETE="off"/>
组合中有4个项目。如何选择特定值。?
答案 0 :(得分:0)
我得到了答案。
概念:
示例代码:
IWebElement iWebelement = driver.FindElement(By.Id(“combobox_Text”)); //获取文本框的元素
IWebElement iWebelementList = driver.FindElement(By.Id(“combobox_List”)); //获取列表/下拉框的元素
SelectElement selected = new SelectElement(iWebelementList); //解析列表
iWebelement.SendKeys(Keys.ArrowDown); //点击下拉图片
selected.SelectByText( “一月”); //使用select元素类选择值
答案 1 :(得分:0)
使用以下代码,从下拉列表中选择一个选项:
IWebElement iwe = Driver.FindElement(By.XPath("//li[contains(@class,'..item...') and contains(text(),'"+text+"')]"));
Thread.Sleep(500);
Actions action = new Actions(Driver);
Thread.Sleep(500);
action.MoveToElement(iwe).Click().Perform();