2014-09-11 2 views
-2

я поставил неявное ожидание моего объекта драйвера, как в коде ниже:неявное ожидание ждет не работает

public void setImplicitWait(
           int waitTime_InSeconds) { 

     driver.manage().timeouts().implicitlyWait(waitTime_InSeconds, TimeUnit.SECONDS); 
    } 

теперь проблема в том, что это не имеет значения, когда элемент будет найден, или отображается setImplicitWait не завершит выполнение до тех пор, пока переменная waitTime_InSeconds не будет завершена. любые идеи, пожалуйста?

+0

Это документированное поведение неявных ожиданий. Рассматривали ли вы вместо этого использование явных ожиданий (или вообще не ожидаете, где это необходимо)? – DNA

ответ

0

Я видел, что вы используете глобальную переменную для веб-драйвера? Вы можете попробовать использовать такой параметр:

public void setImplicitWait(WebDriver myWebdriver, int waitTime_InSeconds) { 

    myWebdriver.manage().timeouts().implicitlyWait(waitTime_InSeconds, TimeUnit.SECONDS); 
} 
+1

Привет Minh, я создал локальную переменную внутри метода, но я получаю ошибку исключения nullpointer. Я сделал следующее: WebDriver myWebdriver = null; try { setImplicitWait (myWebdriver, тайм-аут); driver.findElement (By.xpath (xpathElement)) .isDisplayed(); } catch (NoSuchElementException e) { nullifyImplicitWait(); found = false; } –

+0

Привет Али, перед использованием webdriver вам нужно назначить значение для webdriver, например: WebDriver myWebdriver = new FireFoxDriver(); <= Я не помню точно. Вы можете добавить мой skype: «[email protected]» или «live: minhnph», а затем я могу легко поддержать вас :) –

+0

Спасибо, Minh, я добавил вас в свой список скайпов, с нетерпением ожидая поделиться дополнительной информацией. –

Смежные вопросы