在selenium c#中找不到类型或命名空间SelectElement

问题描述 投票:4回答:3
driver.FindElement(By.Id("inputUsername")).SendKeys("aca");
driver.FindElement(By.Id("inputPassword")).SendKeys("123");
driver.FindElement(By.TagName("button")).Click();

SelectElement oSelect = new SelectElement(driver.FindElement(By.Id("selectFilterbyUser")));
oSelect.selectByText("Alex");

有没有人能解决我上面附带的问题?尝试使用SelectElement,但它显示:

The type or namespace `SelectElement` could not be found.

我试图看到潜在的修复,但它只显示了三个选项

  • 在新文件中生成类SelectElement
  • 生成类SelectElement
  • 生成嵌套类SelectElement

有谁知道如何解决它?

c# selenium selenium-webdriver nunit nunittestadapter
3个回答
3
投票

参考之前的一些帖子,如果您使用的是nunittestadapter,NUnit.Framework,VS 2017等框架,使用NuGet Manager有时可能会出现安装/配置问题。

SelectElement类

根据文档,SelectElement类在OpenQA.Selenium.Support.UI Namespace中几乎可用,它提供了一种方便的方法来操作HTML select元素中的选项选择。


继承层次结构

System.Object
    OpenQA.Selenium.Support.UI.SelectElement

命名空间:OpenQA.Selenium.Support.UI


程序集:WebDriver.Support(在WebDriver.Support.dll中)版本:3.1.0


语法:public class SelectElement:IWrapsElement


快照:

selectelement_class

卸载并重新安装Selenium.Webdriver和Selenium.Support软件包,这肯定会解决问题。

参考

您可以在Cannot find WebDriverWait class in OpenQa Selenium 3.7找到相关的讨论


6
投票

您需要确保参考NuGet包Selenium.Support

我遇到了同样的问题,然后意识到我只是引用了Selenium.WebDriver NuGet包。添加Selenium.Support NuGet包之后,添加正确的using语句。我的SelectElement代码已成功编译。

正确的使用陈述

using OpenQA.Selenium;
using OpenQA.Selenium.Support.UI;

1
投票

用于从下拉列表中选择项目的Selenium WebDriver C#代码:

IWebElement selectElement = driver.FindElement(By.Id("selectFilterbyUser"));
SelectElement oSelect = new SelectElement(selectElement);

有三种方法可以选择下拉项:byText,byIndex,byValue

1.byText()

oSelect.SelectByText("Alex");

2.byIndex()

SelectAnEducation.SelectByIndex(0);

3.byValue()

SelectAnEducation.SelectByValue("Alex");

希望这可以帮助,

© www.soinside.com 2019 - 2024. All rights reserved.