Java Selenium正在等待jQuery.com
我正试图等到Mashise在Java中完全加载了这段代码Java Selenium正在等待jQuery.com,java,jquery,selenium-webdriver,jquery-masonry,Java,Jquery,Selenium Webdriver,Jquery Masonry,我正试图等到Mashise在Java中完全加载了这段代码 String javaScript = "function defer() {" +"if (window.jQuery.masonry)" +"{ return true }" +"else" +"{ return false }"
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));
}
然而,当(!isMasonryLoaded)
有什么想法吗?可能是您的脚本函数
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));
}
希望对您有所帮助:)可能是您的脚本函数
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));
}
希望对您有所帮助:)谢谢,它停止了NullPointerException,js工作不正常,但这不是问题所在,所以谢谢:)谢谢,它停止了NullPointerException,js工作不正常,但这不是问题所在,所以谢谢:)