NodeJS 如何发送组合键到 selenium chrome 驱动程序?

5us2dqdw  于 2023-03-08  发布在  Node.js
关注(0)|答案(5)|浏览(121)

我正在使用uirecorder创建一个测试用例来测试我的网页程序。我想发送一些键组合,如“元键+ R”。但我无法完成。
以下是UI记录器生成步骤的示例:

it('sendKeys: {DOWN}', async function(){
    await driver.sendKeys('{DOWN}');
});

这工作完美.但我不能弄清楚如何发送组合键.问题是我怎样发送组合键象ctrl+a(按住ctrl并按a然后离开ctrl)

我使用的解决方案:

我就这样做了,效果很好。

await driver.sendKeys('{CTRL}a{CTRL}');
py49o6xq

py49o6xq1#

我就这样做了,效果很好。

await driver.sendKeys('{CTRL}a{CTRL}');
krcsximq

krcsximq2#

您可以使用ActionSequence类通过Node在Selenium中执行操作。
按下Left control + a可以模拟鼠标操作,如下所示:

new webdriver.ActionSequence(driver).keyDown(webdriver.Key.LEFT_CONTROL).sendKeys("a").keyUp(webdriver.Key.LEFT_CONTROL).perform();

更多参考:
Reference 1
Reference 2

j8yoct9x

j8yoct9x3#

使用键类:

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();
xxslljrj

xxslljrj4#

对于将来遇到这种情况的人,这里有一个对我有效的解决方案:

const {Key} = require('selenium-webdriver');

...

await driver.actions()
  .keyDown(Key.SHIFT)
  .sendKeys(Key.TAB)
  .keyUp(Key.SHIFT)
  .perform();
l0oc07j2

l0oc07j25#

这起了作用:

button.send_keys(Keys.COMMAND,Keys.RETURN)

相关问题