我尝试使用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识别为有效条目。
答案 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();
希望这有帮助。