2017-10-25 11 views
0
public class Ajax_steps { 

private String URL = "http://demo.guru99.com/selenium/ajax.html"; 
    private WebDriver driver; 
    private WebDriverWait wait; 

public void start(){ 

System.setProperty("webdriver.chrome.driver", "src/test/drivers/chromedriver.exe"); 
    driver = new ChromeDriver(); 
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); 
    driver.get(URL);   
wait = new WebDriverWait(driver, 3); 
    wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector(".container"))); 
    driver.findElement(By.id("yes")).click(); 
    driver.findElement(By.id("buttoncheck")).click(); 
    WebElement textElement = driver.findElement(By.className("radiobutton")); 
    wait.until(ExpectedConditions.visibilityOf(textElement)); 

driver.close(); 

} 
} 

上記のコードは完全に動作しています。しかし、私はnew WebDriverWaitを3秒で宣言したときのような変更が必要です。私はそれは私がそれをどのように行うことができます...無限の時間を待つ...代わりにあなたの上に行うためのパラメータセレンのWebドライバを無限の時間待機させる方法

driver.manage().timeouts().implicitlyWait(365, TimeUnit.DAYS); 

以下

+0

単純に暗黙の時間の数を増やさないのはなぜですか。無限のコマンドはありませんが、待っている2000000000あなたのためのトリックを行うかもしれない –

+0

私はそれを知っているが、他の方法..です – torikraju

+0

パラメータとして最大の長い値を使用するだけではなく、現在の3秒?それは9223372036854775807秒または292,471,205,753年になります。私たちの太陽系がそれまでに存在しなくなっているほど長い。 –

答えて

0

だけ変更がExplicitWaitまたはFluentWaitのいずれかを試してみてくださいしたいです。

をFluentWait:私はあなたがこの解決策を探している願っています

FluentWait<WebDriver> wait = new FluentWait<WebDriver>(driver) 
      .withTimeout(120, TimeUnit.SECONDS) 
      .pollingEvery(1, TimeUnit.SECONDS) 
      .ignoring(NoSuchElementException.class); 

あなたの要素が存在する天候やないwithing与えられた時間をプールであろう。

0

あなたはJavaを使用してtimeOutInSecondsパラメータを増やすことでWebDriverWaitコンストラクタパラメータを微調整しようとしているように、我々はJavaはプリミティブデータ型をサポートしていることを覚えておく必要があります。だから我々は言及するとき:

wait = new WebDriverWait(driver, 3); 

timeOutInSecondsパラメータ

2147483647まで integer Primitive Data Typeすなわちの最高限度まで増加させることができます。

あなたはどちらか、その限界を超えtimeOutInSecondsの制限時間を増やすために使用しているIDEがCompilation Errorsまたは実行時にWebDriverWait Constructorへの呼び出しが不適切な結果を返すことが表示されますしよう。

関連する問題