【问题标题】:Passing keycode with keydown and keyup events in Watir & FireWatir在 Watir 和 FireWatir 中使用 keydown 和 keyup 事件传递 keycode
【发布时间】:2011-08-10 04:43:43
【问题描述】:

我需要在我们的 Web 客户端中自动与自定义 jQuery 富文本编辑器进行交互。 与我们的开发人员交谈后,我只需要能够触发以下事件; keydown、keyup、mousedown、mouseup 和粘贴。

那么真的需要一种能够通过 fire_event keydown 和 keyup 调用 WATIR 和 FIREWATIR 传递键码的方法吗?

有人在这方面取得过成功吗?

【问题讨论】:

    标签: jquery ruby watir firewatir


    【解决方案1】:

    很久以前我也有类似的需求。我相信,你最好的选择是

    @browser.document.parentWindow.eval(‘javascript’)
    

    我刚刚在包含 jquery 的某些页面上尝试了以下内容:

    $('body').keydown(function(e) {alert(e.keyCode)}); // Assign keydown event to 'body', so it will alert with the key code of any button pressed
    
    var event = jQuery.Event("keydown");
    event.keyCode = 50; // Whatever keyCode you need
    jQuery("body").trigger(event); // Here you replace 'body' with the element you need
    

    所以,基本上,你制作一个事件并在你需要的任何元素上触发它

    整个画面可能看起来像:

    @browser.document.parentWindow.eval('var event = jQuery.Event("keydown"); event.keyCode = 50; jQuery("#theElementYouNeed").trigger(event)')
    

    【讨论】:

    • 谢谢,我会试一试的。
    • 让我们知道结果,我觉得还有其他解决方案;)
    【解决方案2】:

    您是否尝试过 send_keys 方法?我知道 watir-webdriver 支持它,而且它似乎正在迅速成为驱动 firefox 的首选方式

    【讨论】:

    • 终于得到了一个 web-driver 测试机器设置,这可以使用,像 browser.frame(:id,"ws-txt-editor").div(:id,"proxy") 这样的命令.send_keys "Hello World"
    • Woot 总是很高兴听到我的回答有效。感谢您更新问题。我想我会很想自己尝试用 watir-webdriver 做更多的事情。这似乎是未来的发展方向,尤其是跨浏览器支持。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多