硒与组合框控制和选择元素

本文关键字:选择 元素 控制 组合 | 更新日期: 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个项目。如何选择特定值。?

硒与组合框控制和选择元素

我得到了答案。

概念:

  1. 组合控件具有文本框 + 列表(下拉图像)。
  2. 因此,首先通过单击它找到下拉图像的元素。
  3. 然后使用"SelectElement"类从列表中选择值。

示例代码:

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);//单击下拉图像

选择。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();