13

我正在尝试使用 Actions.sendKeys 发送快捷方式,但它不起作用。

(New Actions(driver)).SendKeys(Keys.ALT, Keys.SHIFT, "z");
4

5 回答 5

18

你可以检查这个问题来参考这个 - Pressing Ctrl+A in Selenium WebDriver

检查使用和弦方法的答案。在你的情况下,你可以这样做 -

String selectAll = Keys.chord(Keys.ALT, Keys.SHIFT,"z");
driver.findElement(By.tagName("html")).sendKeys(selectAll);
于 2012-07-17T11:02:22.630 回答
6

这也可以使用Actions 的 keyUp 和 keyDown函数来完成。

WebDriver driver = new FirefoxDriver();
Actions keyAction = new Actions(driver);
keyAction.keyDown(Keys.ALT).keyDown(Keys.SHIFT).sendKeys("z").keyUp(Keys.ALT).keyUp(Keys.SHIFT).perform();
于 2016-01-07T20:45:13.843 回答
0

尝试一下:

SendKeys.SendWait("%+z")
于 2018-08-08T09:32:29.697 回答
0

假设您使用的是 JavaScript,

Keys.chord(keys)

此外,文档位于https://www.selenium.dev/documentation/en/

于 2021-02-07T01:05:37.767 回答
0

除了Keys.chord(Keys.ALT, Keys.SHIFT,"z");其他/接受的答案中建议的方法外,我建议您尝试使用机器人框架来使用键盘快捷键。

你可以做类似的事情;

Robot robot = new Robot();
Thread.sleep(1000);
robot.delay(3000);


robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_Y);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_Y);

我想这将有助于解决您的问题。

于 2021-12-07T04:54:40.510 回答