硒与组合框控制和选择元素
本文关键字:选择 元素 控制 组合 | 更新日期: 2023-09-27 18:36:28
我尝试自动化的产品具有来自.Net的自定义组合框控件。
控件的类型为 <input>
,我将只能使用起始字母键入 n 搜索。
当我尝试使用 WebDriver 访问 <select>
元素时,它说无法在<input>
字段上执行该操作。
当我尝试在iWebElement
上.Sendkeys
时,它只能选择带有起始文本的值。
有没有办法使用 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个项目。如何选择特定值。?
我得到了答案。
概念:
- 组合控件具有文本框 + 列表(下拉图像)。
- 因此,首先通过单击它找到下拉图像的元素。
- 然后使用"SelectElement"类从列表中选择值。
示例代码:
IWebElement iWebelement = driver.FindElement(By.Id("combobox_Text")); 获取文本框的元素
IWebElement iWebelementList = driver.FindElement(By.Id("combobox_List"));获取列表/下拉框的元素
SelectElementselected = new SelectElement(iWebelementList); 解析列表
iWebelement.SendKeys(Keys.ArrowDown);//单击下拉图像
选择。SelectByText("Jan"); 使用选择元素类选择值
使用以下代码,从下拉列表中选择一个选项:
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();