我試圖寫crawljax插件運行一些JavaScript代碼,就像這樣:JSON字符串化返回null,但文件撰寫打印出正確
String result = browser.executeJavaScript(script).toString();
和腳本代碼:
function getElementPosition(id) {
var element = document.getElementById(id);
return JSON.stringify(elementpos(findPosX(element), findPosY(element)));
}
function elementpos(x, y) {
elementpos = new Object();
elementpos.x = x;
elementpos.y = y;
return elementpos;
}
return getElementPosition("foo");
這成功返回,但結果總是爲空,即使如果我使用document.write打印出同樣的事情,我得到一個很好的格式化的JSON字符串
{"x":8, "y":24}
我誤會了什麼嗎?有沒有與JSON字符串和Java發生的一些奇怪的事情?我沒有很多JavaScript的經驗,所以我不允許像這樣回來?
我在谷歌瀏覽器測試了這一點,V 25
注:我不認爲它有什麼關係Crawljax本身,因爲那裏有一個單獨的插件(別人寫的),這也有一個腳本,返回一個JSON字符串,但似乎完全正常工作......
代碼中有一個小錯字,它在第一個返回行的末尾缺少括號。 但是,elementPos返回的是什麼:一個字符串?或一個對象? – benzonico 2013-03-07 07:44:39
您可以在http://jsfiddle.net/中重現您的問題,並在修復像@benzonico所說的缺失括號後發佈鏈接: – 2013-03-07 16:31:28
哎呀,這不是我的來源複製和粘貼;我輸入了。我的來源沒有丟失括號 – Daniel 2013-03-07 22:48:22