我有一些* .js脚本,我想在测试运行期间使用watir-webdriver执行。所以问题是有没有办法使用watir-webdriver将脚本上传到页面?
答案 0 :(得分:3)
您可以使用execute_script
方法添加带有src属性的脚本元素作为js文件。方法调用如下:
browser.execute_script(
"var the_script = document.createElement('script');
the_script.setAttribute('src','your_script.js');
document.head.appendChild(the_script);"
)
要看到它有效,我们假设您有页面:
<html>
<body>
<input type="text" id="field" value="100">
</body>
</html>
如果您尝试在页面上执行jQuery(脚本中的'$'),则会发生异常,因为页面不知道jQuery是什么:
field = browser.text_field
p browser.execute_script('return $(arguments[0]).val();', field)
#=> $ is not defined (Selenium::WebDriver::Error::JavascriptError)
如果您通过execute_script
添加jQuery脚本文件(http://code.jquery.com/jquery-1.10.2.js),您现在可以使用jQuery:
browser.execute_script(
"var the_script = document.createElement('script');
the_script.setAttribute('src','http://code.jquery.com/jquery-1.10.2.js');
document.head.appendChild(the_script);"
)
field = browser.text_field
p browser.execute_script('return $(arguments[0]).val();', field)
#=> "100"