2016-07-22 1 views
1

Я пытаюсь ждать, пока кладка не будет полностью загружен с этим кодом в JavaСелен ждать jQuery.Masonry

String javaScript = "function defer() {" 
         +"if (window.jQuery.masonry)" 
         +"{ return true }" 
         +"else" 
         +"{ return false }" 
         +"}; defer()"; 

    boolean isMasonryLoaded=false; 
    while(!isMasonryLoaded) 
    { 
     isMasonryLoaded = (boolean)(((JavascriptExecutor)driver).executeScript(javaScript)); 
    } 

Однако я получаю NullPointerException в while(!isMasonryLoaded) Любые идеи?

ответ

0

Может быть вашей функцией сценария defer() не определяет перед вызовом, вы должны попробовать использовать executeAsyncScript, как показано ниже: -

String javaScript = "var callback = arguments[0];"+ 
      "function defer() {if (window.jQuery.masonry){ "+ 
      "callback(true) }else{ callback(false) }}; defer()"; 

boolean isMasonryLoaded=false; 
while(!isMasonryLoaded) 
{ 
isMasonryLoaded = (boolean)(((JavascriptExecutor)driver).executeAsyncScript(javaScript)); 
} 

Надеется, что это помогает .. :)

+0

спасибо, он остановился NullPointerException, в JS не работает должным образом, хотя, но это не было вопросом вопроса, так что спасибо :) – JackTorrance

+0

@JackTorrance вы приветствуете. Рад помочь вам .. :) –

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

  • Нет связанных вопросов^_^