我使用的是Cucumber,watir-webdriver,page-object和jruby。我正在页面类中编写一个方法,将值输入文本区域。我在page-object
gem中使用生成的方法,在引擎盖下调用Watir-Webdriver set
方法,然后在元素上调用send_keys
。
无论如何,对我来说问题是我试图添加一个非常大的STRING(为了测试可验证表单对象的最大大小的东西)。这是4000个字符,需要花费相当多的时间才能进入。
如果有一种方法可以将整个字符串一次粘贴到文本区域,那就太棒了。 有没有办法使用我手边的技术?这些是.. JRuby,watir-webdriver,page-object(它真的只委托给watir-webdriver)。我认为它是selenium-webdriver,它在任何情况下都在进行浏览器驱动程序交互。
到目前为止,我还没有找到最终使用send_keys的方法,它基本上一次发送一个键击,这就是为什么一个巨大的字符串是一个痛苦。
答案 0 :(得分:7)
您可以使用execute_script
直接设置字段的值。
给定带有textarea的页面:
<html>
<body>
<textarea></textarea>
</body>
</html>
使用set
输入textarea需要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)