我试图写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