首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Key.chord还是ActionSequence?

Key.chord还是ActionSequence?
EN

Stack Overflow用户
提问于 2016-02-16 16:57:50
回答 1查看 1.4K关注 0票数 1

我需要模拟按下CTRL + CCTRL + V等等。Selenium给了我们两种方法:webdriver.Key.chord(var_args),例如:

代码语言:javascript
复制
webdriver.Key.chord(webdriver.Key.CONTROL, 'c')

和类ActionSequence,例如:

代码语言:javascript
复制
new webdriver.ActionSequence(driver).keyDown(webdriver.Key.CONTROL)
      .sendKeys('с')
      .keyUp(webdriver.Key.CONTROL);
action.perform();

哪一种方式更适合使用,为什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-16 22:38:42

首先,webdriver.Key.chord不发送任何事件,它只发送附加参数并在末尾添加一个NULL。根据守则:

注意:当低级webdriver处理程序看到Keys.NULL时,活动修饰符键(CTRL/ALT/SHIFT/etc)通过keyup事件发布。

因此,假设将结果字符串传递给elem.sendKeys(),您将得到以下结果:

代码语言:javascript
复制
 sendKeys: Ctrl-c
 keyUp: Ctrl

相反,在示例中使用Actions,您将得到:

代码语言:javascript
复制
 explicit keyDown: Ctrl // *Not* released
 sendKeys: c
 explicit keyUp: Ctrl  // Note original edit had 'keyDown'

这应该给提供完全相同的结果。

我确信,webdriver.Key.chord是一种更自然的方式来表达修饰符键的使用,而不需要考虑键的下降或上升,而且易用性是最重要的。即使“性能”略有不同,这种差异也不值得考虑。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35438500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档