如何将组合键发送到 selenium chromedriver?
How to send key combination to selenium chromedriver?
我正在使用 uirecorder 创建 mocha 测试用例来测试我的网络程序。我想发送一些组合键,例如 "Metakey + R"。但是我做不到。
这里是 ui 记录器生成步骤的示例:
it('sendKeys: {DOWN}', async function(){
await driver.sendKeys('{DOWN}');
});
这非常有效。但我不知道如何发送组合键。
问题是我如何发送组合键,例如 ctrl+a(按住 ctrl 并按下 a 然后离开 ctrl)
我使用的解决方案:
我就是这样做的,效果很好。
await driver.sendKeys('{CTRL}a{CTRL}');
您可以使用 ActionSequence class 通过 Node.js 在 selenium 中执行操作。
对于按下 Left control + a
,您可以像这样模拟鼠标操作:
new webdriver.ActionSequence(driver).keyDown(webdriver.Key.LEFT_CONTROL).sendKeys("a").keyUp(webdriver.Key.LEFT_CONTROL).perform();
更多参考:
Reference 1
使用按键class:
String keypress = Keys.chord(Keys.CONTROL, "a");
driver.findElement(By.locator("value of locator")).sendKeys(keypress);
使用操作 class:
Actions action = new Actions(driver);
action.keyDown(Keys.CONTROL).sendKeys("a").keyUp(Keys.CONTROL).perform();
我就是这样做的,效果很好。
await driver.sendKeys('{CTRL}a{CTRL}');
对于以后发现此问题的任何人,这里有一个对我有用的解决方案:
const {Key} = require('selenium-webdriver');
...
await driver.actions()
.keyDown(Key.SHIFT)
.sendKeys(Key.TAB)
.keyUp(Key.SHIFT)
.perform();
我正在使用 uirecorder 创建 mocha 测试用例来测试我的网络程序。我想发送一些组合键,例如 "Metakey + R"。但是我做不到。
这里是 ui 记录器生成步骤的示例:
it('sendKeys: {DOWN}', async function(){
await driver.sendKeys('{DOWN}');
});
这非常有效。但我不知道如何发送组合键。 问题是我如何发送组合键,例如 ctrl+a(按住 ctrl 并按下 a 然后离开 ctrl)
我使用的解决方案:
我就是这样做的,效果很好。
await driver.sendKeys('{CTRL}a{CTRL}');
您可以使用 ActionSequence class 通过 Node.js 在 selenium 中执行操作。
对于按下 Left control + a
,您可以像这样模拟鼠标操作:
new webdriver.ActionSequence(driver).keyDown(webdriver.Key.LEFT_CONTROL).sendKeys("a").keyUp(webdriver.Key.LEFT_CONTROL).perform();
更多参考:
Reference 1
使用按键class:
String keypress = Keys.chord(Keys.CONTROL, "a");
driver.findElement(By.locator("value of locator")).sendKeys(keypress);
使用操作 class:
Actions action = new Actions(driver);
action.keyDown(Keys.CONTROL).sendKeys("a").keyUp(Keys.CONTROL).perform();
我就是这样做的,效果很好。
await driver.sendKeys('{CTRL}a{CTRL}');
对于以后发现此问题的任何人,这里有一个对我有用的解决方案:
const {Key} = require('selenium-webdriver');
...
await driver.actions()
.keyDown(Key.SHIFT)
.sendKeys(Key.TAB)
.keyUp(Key.SHIFT)
.perform();