2016-10-11 8 views
0

私はC#でselenium webdriverを使用していますが、私はページオブジェクトモジュールを使用しています。今私は、すでにweb要素を手にしているので、明示的な待機で使用する構文が必要です。明示的に待機するSelenium Webdriver

[FindsBy(How = How.Id, Using = "Passwd")] 
public IWebElement Password {get;set;} 

[FindsBy(How = How.Id, Using = "signIn")] 
public IWebElement Signin { get; set; } 

要素パスワードが見つかるまで待つ必要があります。私が使っていた、このモジュールを使用する前に

WebDriverWait wait = new WebDriverWait(driver.driver, TimeSpan.FromSeconds(Time)); 
wait.Until(ExpectedConditions.ElementExists(by)); 

今、私が手に要素を使用する必要があります。

答えて

4

を使用してください。

WebDriverWait wait = new WebDriverWait(driver.driver, TimeSpan.FromSeconds(Time)); 
wait.Until(ExpectedConditions.ElementToBeClickable(Password)); 
+0

Expected条件でElementToBeClickableが受け入れられません。それは......... 'OpenQA.Selenium.Support.UI.ExpectedConditions'には 'ElementToBeClickable –

+0

'の定義が含まれていません。このリンクはc#docs、https://seleniumhq.github.io/で見ることができますselenium/docs/api/dotnet/html/M_OpenQA_Selenium_Support_UI_ExpectedConditions_ElementToBeClickable_1.htmこれは 'ExpectedConditions'でサポートされています。私は奇妙ですなぜあなたはエラーを取得しています –

+0

セレンのどのバージョンを使用していますか? –

0

は、明示的な待機を追加し、真であるとPassword.Displayedを待つ:

​​

全開示を、私はここで答えを見つけました:https://groups.google.com/forum/#!topic/webdriver/xdFsocNMSNc

+0

私のそれは構文エラーになると動作しない - を:IWebElementなどの入力を受け入れるだろうと要素が表示されるまで待ってから、次のようにできるようになる! –

0

期待条件法は、その引数としてByを取ると、あなたがしたいです

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); 
wait.Until(ExpectedConditions.ElementIsVisible(By.Id("Passwd"))); 
関連する問題