2016-08-18 15 views
2

Seleniumの要素を待つ関数を作ろうとしています。Selenium webdriver javaが要素を待機しています

private WebElement waitIsClickable(By by, int n) throws Exception{ 

     WebDriverWait wait= new WebDriverWait(driver,/*seconds=*/ n); 
     wait.until(ExpectedConditions.elementToBeClickable(by)); 

     return driver.findElement(by); 
} 

しかし、私はそれを使用したいとき:

waitIsClickable(By.id("logIn"), 20).click(); 

私はエラーを取得する:

Error:(1057, 20) java: method waitIsClickable in class Functions cannot be applied to given types; required: org.openqa.selenium.By,int found: org.openqa.selenium.By reason: actual and formal argument lists differ in length

答えて

2

あなたは、このエラーがある行であることを確認していますか?この方法の他の呼び出しはありますか?あなたはByオブジェクトであるものを提供している間

waitIsClickable(By.id("logIn")).click(); 
0

ご提供エラースタックトレース状態は、2つのパラメータを期待:エラーの説明によって、それはあなたのようなコールをしようとしているようです。だから、もう一度あなたの呼び出し参照を確認する必要があります。

ExpectedConditions.elementToBeClickable戻りWebElementまたは予想される状態が待機中に満たしていない場合はTimeoutExceptionをスローどちらかなので、再び要素を検索する必要はありません。 -

private WebElement waitIsClickable(By by, long n) throws Exception { 
    WebDriverWait wait= new WebDriverWait(driver, n); 
    return wait.until(ExpectedConditions.elementToBeClickable(by)); 
} 

By by = By.id("logIn"); 
waitIsClickable(by, 20).click(); 
+0

intパラメータは長いボックスになります。これは問題ではありません(エラーメッセージをもう一度見てください)。 – Guy

+0

@Guyああ、あなたが正しいエラー状態であると見なされている間に2つのparamが見つかりました。ありがとうございました。:) –

+0

@Guyしかし、電話での参照は、OPが提供されているので、okと思われます。 –

関連する問題