【问题标题】:Press a tab key through Javascript for selenium通过 Javascript 为 selenium 按下 tab 键
【发布时间】:2017-02-01 00:44:45
【问题描述】:

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

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

但由于 google chrome 版本 53.0.2785.116,它不支持 Tab 键按下,所以我想通过 javascript 模拟 Tab 键按下。所有的答案都只遵循事件被调用的“之后做什么”。 谁能给我任何见解?

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

我也尝试了以下解决方案Link here,但它不起作用。 “keyboardEvent”不再起作用了吗?有人可以给我一个解决方法吗?

【问题讨论】:

  • 你可能想看看Robot

标签: javascript c# selenium automated-tests


【解决方案1】:

使用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。

【讨论】:

    【解决方案2】:

    在 jQuery 中我们使用如下:

    假设您有 Id 为 txtName 的 TextBox

    $("[id*=txtName]").on('keydown', function(e) { 
      var keyCode = e.keyCode || e.which; 
      if (keyCode == 9) {
         e.preventDefault();
         alert('Tab Pressed');
     }
    }); 
    

    【讨论】:

    • 嘿@UJS 我要求的是特定于在 selenium webdriver 中使用 JAVASCRIPT 来自动发送选项卡。您建议检查按下的键是否为制表符
    • 在 jQuery 中,我们只用这样的方式进行检查。这里向您展示我只是 putton alert 的示例 ..代替 alert 你可以使逻辑需要。这不是我有的错误选项提供。如果觉得,请删除 -ve 投票。
    猜你喜欢
    • 2023-03-28
    • 2011-10-12
    • 1970-01-01
    • 2016-05-24
    • 2010-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多