我正在使用UIRecorder创建摩卡测试用例来测试我的Web程序。我想发送一些组合键,例如"元键 + R"。但我做不到。
下面是 UI 记录器生成步骤的示例:
it('sendKeys: {DOWN}', async function(){
await driver.sendKeys('{DOWN}');
});
这非常有效。 但是我不知道如何发送组合键。 问题是我如何发送像ctrl + a这样的组合键(按住ctrl并按然后离开ctrl(
我使用的解决方案:
我就是这样做的,工作正常。
await driver.sendKeys('{CTRL}a{CTRL}');
我就是这样做的,工作正常。
await driver.sendKeys('{CTRL}a{CTRL}');
您可以使用 ActionSequence 类通过 Node 在硒中执行操作。
对于按Left control + a
,您可以像这样模拟鼠标动作:
new webdriver.ActionSequence(driver).keyDown(webdriver.Key.LEFT_CONTROL).sendKeys("a").keyUp(webdriver.Key.LEFT_CONTROL).perform();
更多参考资料:
参考资料1
参考文献 2
使用 Keys 类:
String keypress = Keys.chord(Keys.CONTROL, "a");
driver.findElement(By.locator("value of locator")).sendKeys(keypress);
使用操作类:
Actions action = new Actions(driver);
action.keyDown(Keys.CONTROL).sendKeys("a").keyUp(Keys.CONTROL).perform();
对于将来发现此内容的任何人来说,这里有一个对我有用的解决方案:
const {Key} = require('selenium-webdriver');
...
await driver.actions()
.keyDown(Key.SHIFT)
.sendKeys(Key.TAB)
.keyUp(Key.SHIFT)
.perform();
这奏效了:
button.send_keys(Keys.COMMAND,Keys.RETURN)