硒等待 jQuery.Masonry
Selenium wait for jQuery.Masonry
我正试图等到 masonry 在 Java
中完全加载此代码
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));
}
但是我在 while(!isMasonryLoaded)
得到 NullPointerException
有什么想法吗?
可能是你的脚本函数 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));
}
希望对您有所帮助..:)
我正试图等到 masonry 在 Java
中完全加载此代码 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));
}
但是我在 while(!isMasonryLoaded)
得到 NullPointerException
有什么想法吗?
可能是你的脚本函数 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));
}
希望对您有所帮助..:)