Тип или пространство имен SelectElement не найдены в селене C#

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

Кто-нибудь знает как это решить?

7 ответов

Решение

Обращаясь к нескольким предыдущим сообщениям, кажется, что если вы используете фреймворки, такие как nunittestadapter, NUnit.Framework, VS 2017 с использованием NuGet Manager, иногда могут возникнуть проблемы с установкой / настройкой.

SelectElement Class

Согласно документации SelectElement Класс в значительной степени доступен в OpenQA.Selenium.Support.UI Namespace который обеспечивает удобный метод для манипулирования выбором опций в элементе выбора HTML.


Иерархия Наследования

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

Пространство имен: OpenQA.Selenium.Support.UI


Сборка: WebDriver.Support (в WebDriver.Support.dll) Версия: 3.1.0


Синтаксис: открытый класс SelectElement: IWrapsElement


Снимок:

selectelement_class

Решение

Удалите и переустановите пакеты Selenium.Webdriver и Selenium.Support, которые наверняка решат проблему.

Ссылка

Соответствующее обсуждение можно найти в разделе Не удается найти класс WebDriverWait в OpenQa Selenium 3.7.

Вы должны обязательно ссылаться на пакет NuGet Selenium.Support.

У меня возникла та же проблема, а затем я понял, что ссылаюсь только на пакет Selenium.WebDriver NuGet. После добавления пакета NuGet Selenium.Support и добавления правильных операторов using. Мой код SelectElement успешно скомпилирован.

Правильное использование выражений

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

Код Selenium WebDriver C# для выбора элемента из выпадающего списка:

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

Есть 3 способа выбора выпадающего элемента: byText, byIndex, byValue

1.byText ()

oSelect.SelectByText("Alex");

2.byIndex ()

SelectAnEducation.SelectByIndex(0);

3.byValue ()

SelectAnEducation.SelectByValue("Alex");

Надеюсь это поможет,

У меня была такая же проблема из-за использования предварительной версии. v4.00 альфа. Я установил предыдущую версию v3.141.0 и ошибки были устранены

https://stackru.com/image s/6274615a092c3742f58a98e18395024705d1d3f4.png

В Dotnet 4.7 SelectElement находится в драйвере поддержки Selenium в пакете Nuget.

Прежде всего, вам необходимо установить соответствующий пакет из NuGet, который является Selenium.Support

Правильные операторы использования выглядят так:

с использованием OpenQA.Selenium.Support.UI;

Начиная с Selenium.WebDriver 4.0, необходимо установить пакеты nuget Selenium.WebDriver и Selenium.Support (одной и той же версии), чтобы избежать этой проблемы (исключения IWrapsElement/type load).

Другие вопросы по тегам