我正在使用Cucumber,watir-webdriver,page-object和jruby。我在页面类中编写了一种在文本区域中输入值的方法。我在page-object
gem中使用了生成的方法,该方法在后台调用Watir-Webdriverset
方法,该方法又send_keys
在元素上调用。
无论如何,对我来说问题是我试图添加一个非常大的字符串(以测试可验证的表单对象的最大大小的东西)。这是4000个字符,需要花费大量时间才能输入。
如果有一种方法可以立即将整个字符串粘贴到文本区域,那就太好了。有什么办法可以利用我现有的技术来做到这一点?它们是.. JRuby,watir-webdriver,页面对象(实际上只是委托给watir-webdriver)。我想在任何情况下,都是由selenium-webdriver进行浏览器驱动程序交互。
到目前为止,我还没有找到最终使用send_keys的方法,该方法基本上一次发送一次击键,这就是为什么巨大的字符串会让人感到痛苦。
您可以使用直接设置字段的值execute_script
。
给定一个带有文本区域的页面:
<html>
<body>
<textarea></textarea>
</body>
</html>
输入文本区域set
需要6到9秒钟(使用Firefox / Chrome):
input = 'a' * 4000
browser.textarea.set(input)
但是,通过使用execute_script
直接设置值,仅花费了0.2秒:
input = 'a' * 4000
field = browser.textarea
browser.execute_script('arguments[0].value = arguments[1];', field, input)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句