2015-09-18 28 views
22
セレンやC#と 明示的な待機を検索する場合

はOpenQA.Selenium(C#の)でWebDriverWaitクラスを見つけることができません

(Javaの-セレンからC#-Seleniumへの移行)

私はに似たコードを持ついくつかの記事を見つけますJavaの-カウンターパート:

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

またはhere:例:hereため

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

WebDriverWaitはOpenQA.Selenium.Support.UI名前空間からのものであり、セレンwebdriverをサポートクラス

BUTと呼ばれる別のパッケージで提供されます:私は、Visual Studioでこれを自分でコーディングしようとすると
(取得します私のコードでWebDriverWaitを使用してNuGet経由セレンパッケージ)は、メッセージが要求されます:

型または名前空間名「WebDriverWait」が見つかりませんでした(あなた は、参照するusingディレクティブまたはアセンブリが欠落していますENCE?documentation for WebDriverWaitあなたは

OpenQA.Seleniumと呼ばれる名前空間が存在すべきであることを、見つけるを検索するとき、私は

using OpenQA.Selenium; 

経由セレンの参照を含めていたとしても)

.Support.UI

私のコードでは "using"を使ってアクセスできません。

これはどうしてですか?どこでWebDriverWaitクラスを見つけることができますか?

答えて

50

幸いにも私は時々、同様の回答にコメントを読んで、私は最高ランクのコメントhere以内に溶液に出くわし:

WebDriverWait [ある] OpenQA.Selenium.Support.UI名前空間からと はNuGet

おかげ@Vedにセレンwebdriverをサポートクラス と呼ば別のパッケージで提供されます!

  • NuGetパッケージ "Selenium.WebDriver" も
  • NuGetパッケージ "セレン:

    は、Visual Studioには、これは次の2つのパッケージをインストールする必要があること、を意味します。『良いもののすべてをサポートは「今まで私はちょうど得るために、唯一の依存関係を含めることが必要なので、Mavenを使用してJavaから来る

が、これは、;-)、少なくとも私には(些細なことではありません』 。このように:?答えを超えるつまずくために私にあまりにも多くの時間と幸運を要するので

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

*答えを含む問題としてこれを投稿

+0

C#/ .NetパッケージをSeleniumサイトにダウンロードしましたか?そこに4つのDLLがあるはずです。あなたが4つすべての参照を追加する場合、あなたは良いはずです。それが私のやり方だし、それは私のために働く。私は決してNuGetを使用しません。 – JeffC

+0

@JeffCいいえ、私はヒントのためにNuGetを使用して、私の質問を更新します! – drkthng

+0

あなたはそれが動作することを知っているので、あなた自身の答えを受け入れる必要があります。この質問を読んでいる人たちに、自分自身の解決策を見つけようとすると、それを明確にします。 –

2

あなたは

using OpenQA.Selenium.Support.UI; 
を追加しようとしたことがあり

それだけで十分です。あなたのIDEに応じて、おそらく(?)には見つからない参照を見つけて追加するヘル​​パーがいます。私はVisual Studioを使用します。私はちょうど私がそこにあるはずであることをタイプ入力します。 IDEがWebDriverWaitに赤い波打ちを付けたら、その上にカーソルを置くと、参照が見つからないというヒントが表示され、リンクをクリックすると、潜在的な修正が表示されます。新しいツールチップにはいくつかのオプションが表示されます。通常は、最初にusingステートメントを追加します。私はそれをクリックすると、赤いsquigglesは遠ざかります。

私はVisual Studioが本当に好きですが、私は過去9ヶ月間Eclipseを使用していましたが、Eclipseがこれを処理する方法を好んでいます。私はそれがもっと直感的だと思う...それは私だけです。


EDIT

ただ、将来の読者のために明確にしたかった...私はNuGetを使用しないでください。私はちょうどSelenium .Netパッケージをダウンロードして、プロジェクトの近く/に4つのDLLをドロップしてから、それらの4つすべてのリファレンスをVisual Studioプロジェクトに追加します。私がそれをして、上記の指示を使用すると、それは私のために働く。

+0

これは動作しません。あなたがNuGetを使用するときは - >あなたはSeleniumを検索し、最初に来るSeleniumパッケージを追加します。 WebDriver、そしてこれにはSupportクラスが含まれていないので、私の答えと同じように、 "Selenium Support"という別のNuGet Packagをロードする必要があります – drkthng

+0

私はSelenium .Netパッケージをインストールするための余分な指示わかりやすいために私たちの会話の下でNuGetを使用しないでください... – JeffC

+0

ええ、NuGetなし1つは、複数の参照を追加するために使用されますが、NuGetを使用すると、Mavenと同じですが、通常は1つの依存関係/非常に便利なパッケージです。なぜ便利なのか、私はWebDriverWaitにアクセスできない解決策を見つけることができませんでした.- – drkthng

0

Selenium.WebDriver.WaitExtentions。

+0

https://github.com/SeleniumHQ/selenium/issues/4864 –

+0

IWebDriverドライバ=新しいChromeDriver(); driver.Manage()。タイムアウト()。ImplicitlyWait(TimeSpan.FromSecound(1)); driver.FindElement(By.Id( "Login")); –

関連する問題