我需要使用Java API在Selenium RC中模拟tab键。
我在输入一些文字之后这样做:
selenium.type(input, "mytext");
我已经尝试了3个替代方案来使标签工作:
selenium.keyPress(input, "\\9");
和
selenium.focus(input);
selenium.keyPressNative("09");
甚至:
selenium.getEval("var evt = window.document.createEvent('KeyboardEvent');evt.initKeyEvent ('keypress', true, true, window,0, 0, 0, 0,0, 9,0);window.document.getElementsByTagName('input')[2].dispatchEvent(evt);")
我能得到的最好的是在我的文字之后插入“标签空间”,所以我在输入字段中结束了这个:
"mytext "
我真正想要的是选择下一个控件。有线索吗?谢谢!
(注意:我必须使用tab而不能使用焦点或选择我想去的元素,因为各种原因,所以请不要沿着这些方面提出建议!)
答案 0 :(得分:4)
selenium.keyPressNative(java.awt.event.KeyEvent.VK_TAB + "");
我不使用Java API,但谷歌小组的this post表明它是您的解决方案。我无法想象你的问题中“9”与“09”有什么不同,但试一试?
答案 1 :(得分:2)
尝试官方TAB字符:\t
或\u0009
答案 2 :(得分:1)
某些功能可能会使用Onblur。当场失去关键焦点时,它将触发该功能。这里我们可以使用fireEvent和“blur”或“focus”命令,如下所示: 命令:fireEvent target:id = your_field_identification 值:模糊
参考:http://qaselenium.blogspot.com/2011/01/how-to-triger-tab-key-in-selenium.html
答案 3 :(得分:1)
即兴发挥Ryley的答案,我们可以使用
selenium.keyDownNative(java.awt.event.KeyEvent.VK_TAB + "");
selenium.keyUpNative(java.awt.event.KeyEvent.VK_TAB + "");
我在IE中为VK_CONTROL尝试了这种方法,但效果很好。
答案 4 :(得分:0)
使用typeKeys():
引用上述链接:
与直接强制指定值直接强制进入页面的简单“type”命令不同,即使在键入键通常具有可见效果的情况下,此命令也可能具有或不具有任何可见效果。例如,如果您在表单元素上使用“typeKeys”,则可能会也可能不会看到您在字段中键入的内容的结果。
在某些情况下,您可能需要使用简单的“type”命令来设置字段的值,然后使用“typeKeys”命令来发送与您刚输入的内容相对应的击键事件。