Подтвердить что ты не робот

Не удается найти класс WebDriverWait в OpenQA.Selenium(С#)

(Миграция из Java-Selenium в С# -Selenium)

При поиске явных ожиданий с Selenium и С# я нахожу несколько сообщений с кодом, похожим на Java-Counterpart:

например здесь:

WebDriverWait wait = new WebDriverWait(driver, new TimeSpan(0,0,5));
wait.Until(By.Id("login"));

или здесь:

WebDriverWait wait = new WebDriverWait(driver, 30);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("locator")));

WebDriverWait из пространства имен OpenQA.Selenium.Support.UI и поставляется в отдельном пакете под названием Selenium WebDriver Support Classes

НО:
Когда я пытаюсь сам это сделать в Visual Studio (получение пакета Selenium через NuGet), использование WebDriverWait в моем коде подскажет сообщение:

Тип или имя пространства имен 'WebDriverWait' не удалось найти (вы отсутствует директива using или ссылка на сборку?)

Несмотря на то, что я включаю ссылку Selenium через

using OpenQA.Selenium;

При поиске документации для WebDriverWait вы обнаружите, что должно быть пространство имен с именем

OpenQA.Selenium.Support.UI

Но я не могу получить к нему доступ через "использование" в моем коде.

Почему это происходит? Где я могу найти класс WebDriverWait?

4b9b3361

Ответ 1

К счастью, я иногда также читал комментарии к ответам, поэтому я наткнулся на решение в наивысшем рейтинге здесь:

WebDriverWait [is] из пространства имен OpenQA.Selenium.Support.UI и поставляется в отдельном пакете под названием Selenium WebDriver Support Classesна NuGet

Спасибо @Ved!

В Visual Studio это означает, что вам нужно установить TWO-пакеты:

  • пакет NuGet Selenium.WebDriver "И ТАКЖЕ
  • пакет NuGet " Selenium.Support"

Исходя из Java с Maven, это не тривиально (по крайней мере, для меня;-), потому что до сих пор мне просто нужно было включить одну и только одну зависимость, чтобы получить "все хорошие вещи", как это:

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>2.46.0</version>
</dependency>

* Размещено это как вопрос, включающий ответ, потому что это стоило мне слишком много времени и удачи, чтобы наткнуться на ответ.

Ответ 2

Вы пытались добавить?

using OpenQA.Selenium.Support.UI;

Это должно быть все, что вам нужно. В зависимости от вашей среды IDE, вероятно, (?) Будет иметь помощника, который найдет и добавит недостающие ссылки. Я использую Visual Studio. Я просто печатаю то, что знаю, должно быть. Когда среда IDE помещает красные squiggles в WebDriverWait, я наводил на нее курсор, и она показывает всплывающую подсказку, в которой говорится, что мне не хватает ссылки, и я нажимаю на ссылку "Показать возможные исправления". В новой подсказке показаны несколько параметров, обычно первая из которых заключается в добавлении оператора using. Я нажимаю этот, и красные squiggles уходят.

Мне очень нравится Visual Studio, но я использую Eclipse в течение последних 9 месяцев или около того, и я предпочитаю, как Eclipse справляется с этим. Я считаю это более интуитивным... но это только я.


ИЗМЕНИТЬ

Просто хотел разъяснить будущим читателям... Я не использую NuGet. Я просто загружаю пакет Selenium.Net и бросаю 4 библиотеки DLL в/около моего проекта, а затем добавляю ссылки на все 4 из них в мой проект Visual Studio. Как только я это сделаю и использую приведенные выше инструкции, он работает для меня.

Ответ 3

Selenium.WebDriver.WaitExtentions.