带硒的下拉框和span-Dropdownbox

时间:2019-02-21 06:49:03

标签: c# selenium dropbox

我有一个下拉框,看起来像这样: Dropdown-Box

我需要测试此下拉菜单并使用以下代码:

IWebElement classes = driver.FindElement(By.CssSelector("span#select2-ctl00_ctl00_BaseRightContent_MainRightContent_EditMachineDetails_MachineClassList-container"));
SelectElement selectClass = new SelectElement(classes);
selectClass.SelectByText(Parameters.GivenClass);

有人知道如何处理此错误: 元素应已选择但为跨度

因为新的硒不再提供“选择”级

2 个答案:

答案 0 :(得分:0)

我认为Select仅适用于dropdown中存在的option元素,但是如果该元素存在于divspan中,则{ {1}}类在某些情况下不起作用,因此建议您使用差异方式选择可以做一件事的元素

  1. 首先单击下拉列表。
  2. 如果下拉值是唯一的,那么您可以使用此值。

    Select

此后,您可以单击元素,也可以使用driver.FindElement(By.Name("dropdownvalue")).click(); //This is an Java syntax,因为您需要sendKeys()必须在下拉菜单的源中预设 尝试让我们知道。

答案 1 :(得分:0)

Here you can see my Page & HTML-Content。 已经尝试了以下操作:

 IWebElement classes = driver.FindElement(By.CssSelector("span#select2-ctl00_ctl00_BaseRightContent_MainRightContent_EditMachineDetails_MachineClassList-container"));
            classes.Click();
            //IWebElement classclickelement = driver.FindElement(By.Name(registerLiebherrMachineParam.MachineClass));
            //classclickelement.Click();
            IWebElement classestextbox = driver.FindElement(By.CssSelector("input[class='select2-search__field'][role='textbox']"));
            classestextbox.SendKeys(registerLiebherrMachineParam.MachineClass);            
            IWebElement clickgivenclass = driver.FindElement(By.CssSelector($"li[class='select2-results__option select2-results__option--highlighted'][value='{registerLiebherrMachineParam.MachineClass}']"));
            clickgivenclass.Click();

这是我的错误代码: 附加信息:无此类元素:无法找到元素:....