我使用网络驱动程序Action来执行一些键组合:
new Actions(getWebDriver()).sendKeys(Keys.CONTROL, ..).perform();
我的问题是,Keys.CONTROL
在执行操作后仍然处于激活状态。经过一些新的点击后,我在浏览器上打开了新标签,并且由于密钥仍处于激活状态而导致奇怪的行为。如何释放钥匙?感谢。
答案 0 :(得分:1)
构建一系列操作然后执行它们。有关如何释放控制键的有用演示是通过模拟 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 );
答案 1 :(得分:0)
尝试使用Keys.chord()
。根据{{3}}:
在“和弦”中模拟一次按下许多键。采取一系列的 Keys.XXXX或字符串;将每个值附加到字符串,然后添加 和弦终止键(Keys.NULL)并返回结果 串。注意:当低级webdriver密钥处理程序看到Keys.NULL时, 活动修饰键(CTRL / ALT / SHIFT / etc)通过键盘事件释放。
因此,使用和弦自动附加的Keys.NULL
应该释放控制权。
<强>解决方案强>
new Actions(getWebDriver()).sendKeys(Keys.chord(Keys.CONTROL, ...)).perform();
答案 2 :(得分:0)
对我来说只有这样的解决方法有帮助:
new Actions(selenium).sendKeys(Keys.ESCAPE).perform();