我正在使用 webdriver Action来执行一些组合键:
new Actions(getWebDriver()).sendKeys(Keys.CONTROL, ..).perform();
我的问题是Keys.CONTROL
执行操作后仍然激活。在一些新的点击之后,我的浏览器上有新的打开选项卡和奇怪的行为,因为密钥仍然被激活。如何释放密钥?谢谢。
我正在使用 webdriver Action来执行一些组合键:
new Actions(getWebDriver()).sendKeys(Keys.CONTROL, ..).perform();
我的问题是Keys.CONTROL
执行操作后仍然激活。在一些新的点击之后,我的浏览器上有新的打开选项卡和奇怪的行为,因为密钥仍然被激活。如何释放密钥?谢谢。
建立一系列动作,然后执行它们。一个有用的演示如何释放控制键是通过模拟按键来移除附加栏Control+/,然后发送keyUp
消息以释放按住的Control键:
WebDriver driver = getDriver();
String handle = driver.getWindowHandle();
// Remove the "add-on" bar.
driver.switchTo().defaultContent();
Actions actions = new Actions( driver );
actions
.sendKeys( Keys.CONTROL, Keys.DIVIDE )
.keyUp( Keys.CONTROL )
.build()
.perform();
// Return back to whatever window was first selected.
driver.switchTo().window( handle );
尝试使用Keys.chord()
. 根据文档:
模拟在“和弦”中一次按下多个键。接受一系列 Keys.XXXX 或字符串;将每个值附加到一个字符串,并添加和弦终止键 (Keys.NULL) 并返回结果字符串。注意:当低级 webdriver 键处理程序看到 Keys.NULL 时,活动修饰键 (CTRL/ALT/SHIFT/etc) 通过 keyup 事件释放。
所以Keys.NULL
使用和弦自动附加的那个应该释放控制。
解决方案
new Actions(getWebDriver()).sendKeys(Keys.chord(Keys.CONTROL, ...)).perform();
对我来说,只有这样的解决方法有帮助:
new Actions(selenium).sendKeys(Keys.ESCAPE).perform();