2017-11-15 11 views
0

POM frameowrkでExplicit Waitを実装する方法と場所を教えてください。Selenium Explicit wait

私は明示的に待機コードを実装する必要がありますか? POMクラスまたはテストケースクラスでは?

は今以来、私はこれが正しいかどうかをコード

public RegistrationPage (WebDriver driver) 
    { 
     PageFactory.initElements(driver, this); 
     new WebDriverWait(driver, 30).until(ExpectedConditions.visibilityOf(GenderRadioButton)); 
    } 

これが私のためにうまく働いたの下に、POMクラスのコンストラクタ本体内EWコード行を実装しますが、100%でないことを確認しています場所は---このプラザ

にいくつかの洞察力を必要とし、ラム

+1

[暗黙的な待機を明示的な待機に置き換える](selenium webdriver&java)](https://stackoverflow.com/questions/45712431/replace-implicit-wait-with-explicit-wait-selenium-webdriver-java)の可能な複製 – DebanjanB

答えて

0

あなたはこれを試みることができると明示的な待機を実装します

public RegistrationPage (WebDriver driver, int timeOutSeconds) 
{ 
    driver.manage().timeouts().implicitlyWait(timeOutSeconds, TimeUnit.SECONDS); 
    PageFactory.initElements(driver, this); 
    new FluentWait<WebDriver>(driver) 
      .withTimeout(timeOutSeconds, TimeUnit.SECONDS) 
      .pollingEvery(RETRY_TIME, TimeUnit.SECONDS) 
      .ignoring(NoSuchElementException.class) 
      .until(ExpectedConditions 
        .visibilityOf(By.xpath(xpath))) 
    driver.manage().timeouts().implicitlyWait(timeOutSeconds, CLASS_VARIABLE_IMPLICIT_TIMEOUT); 
}