如何keyDown SHIFT +" w"点击 - selenium java

时间:2015-12-03 20:03:37

标签: java selenium selenium-webdriver keydown keyevent

我尝试使用selenium和Chrome驱动程序在新窗口中打开链接。我想使用keyDown来保存SHIFT和" w"点击webelement时。这些尝试没有奏效:

    Actions act = new Actions(driver);

    Action series = act.keyDown(englishButton, Keys.SHIFT).keyDown(englishButton, "w").click(englishButton).build();

    series.perform();

" .keyDown(englishButton," w")"部分给我一个错误。我也尝试过使用java机器人:

Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_SHIFT);
robot.keyPress(KeyEvent.VK_W);
englishButton.click();

但是在导入Robot之后,KeyEvent并没有将VK_SHIFT或VK_W识别为有效条目。

2 个答案:

答案 0 :(得分:0)

首先,在Google Chrome中,要在新标签页中打开链接,您无需按住W,只需按SHIFT键。

其次,.keyDown(englishButton, "w")不应该编译,因为它需要一个org.openqa.selenium.Keys实例(而不是char)。如果你想发送字符,你应该使用Actions.sendKeys(CharSequence...)(它不会释放修饰键而不像WebElement.sendKeys(CharSequence...)):

Action series = act.sendKeys(Keys.SHIFT, "w").click(englishButton).keyUp(Keys.SHIFT).build()

首先按下SHIFT + W键,然后单击按钮/链接,然后释放SHIFT(因为W不是修改键,您不需要释放它)。

如果您不关心按住W但只是SHIFT,那么您可以尝试以下方法:

Action series = act.keyDown(Keys.SHIFT).click(englishButton).keyUp(Keys.SHIFT).build()

这应该只需按住SHIFT键,单击按钮/链接,然后释放SHIFT。

答案 1 :(得分:0)

“w”按钮应使用sendKeys()方法“按下”。但正如@ mfulton26所提到的,如果你想在Chrome中打开一个新的标签,就没有必要这么做了。此外,无需使用englishButton作为keyDown()keyUp()方法中的第一个参数。请看一下:

Actions act = new Actions(driver);

Action series = act.
        keyDown(Keys.SHIFT). // Press Shift key
        click(englishButton). // Click the link
        keyUp(Keys.SHIFT). // Release Shift key
        build(); // Build the chain of actions

series.perform();

希望这有帮助。