通过Javascript按Tab键获取selenium

时间:2016-09-23 08:18:05

标签: javascript c# selenium automated-tests

我需要测试输入表单的功能,我必须验证按Tab键是否通过右输入字段。我使用了selenium的动作以及Keys.tab

Actions new tab = new Actions(driver); newtab.SendKeys(Keys.Tab).Build().Perform();

但是由于谷歌Chrome版本53.0.2785.116,它不支持tab键按,所以我想通过javascript模拟tab键按。所有的答案只能遵循""做什么后"这个事件被称为。 任何人都可以给我任何见解吗?

编辑:请注意我需要在selenium web驱动程序测试中运行此脚本。因此,与此相关的答案将非常有帮助。 我确实找到了问题和一些令人困惑的答案 Question A Question B

我也尝试过以下解决方案Link here,但它不起作用。是" keyboardEvent"不再工作了?有人会给我一个解决方法吗?

2 个答案:

答案 0 :(得分:0)

使用Jquery,您可以尝试:

$("#1234").trigger({type: 'keypress', which: 9, keyCode: 9});

使用JS:

var pressTabKey = new Event('keydown');
document.getElementById('1234').addEventListener('keydown', function() { alert("hi!"); });
document.getElementById('1234').dispatchEvent(pressTabKey);

其中1234是文本框的id。

答案 1 :(得分:-1)

在jQuery中我们使用如下:

假设你有一个带有Id txtName的文本框

import GHC.Conc
import Control.Monad

isThreadStatusBlocked :: ThreadStatus -> Bool
isThreadStatusBlocked (ThreadBlocked _) = True
isThreadStatusBlocked _ = False

isAlive :: ThreadId -> IO Bool
isAlive = fmap (liftM2 (||) (ThreadRunning ==) isThreadStatusBlocked) . threadStatus