如何使用watir-webdriver动态地将脚本添加到页面

时间:2014-10-24 05:36:13

标签: watir-webdriver

我有一些* .js脚本,我想在测试运行期间使用watir-webdriver执行。所以问题是有没有办法使用watir-webdriver将脚本上传到页面?

1 个答案:

答案 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"