如何发送组合键到硒铬驱动程序?



我正在使用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)

相关内容

  • 没有找到相关文章

最新更新