我希望能够使用Watir动态加载像jquery这样的.js库,以实现一些高级浏览器自动化。这就是我试过的:
$browser.execute_script( %{var bootscript = document.createElement("script");
bootscript.setAttribute("type", "text/javascript");
bootscript.setAttribute("src", "//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js");
document.getElementsByTagName("head")[0].appendChild(bootscript);
alert('I loaded jquery!');});
在错误修正后,更新不再崩溃。使用jquery函数时仍然会出错。
答案 0 :(得分:1)
发生异常是因为执行javascript时出错。如果您检查该页面,您将看到一个javascript错误,如:
Message: 'script' is undefined
Line: 1
Char: 1
Code: 0
如果逐行添加脚本,您将看到错误发生在该行:
document.getElementsByTagName("head")[0].appendChild(script);
问题在于变量中存在拼写错误。您使用的是script
,而不是您定义的bootscript
。执行以下操作将不再抛出异常:
document.getElementsByTagName("head")[0].appendChild(bootscript);