我一直在 Selenium 中使用键盘快捷键来执行 UI 功能,并且一直使用 Keys.chord() 来模拟同时按键。它们在 Firefox 和 Chrome 中工作得很好,但在 Internet Explorer 中却不行。在 IE 中,似乎每个按键都是单独执行的,而不是一起执行的。
以下行适用于 Firefox 和 Chrome,但不适用于 IE:
driver.findElement(By.id(id)).sendKeys(Keys.chord(Keys.SHIFT, Keys.ARROW_LEFT));
我也尝试过 IE 中的 Actions 类,但没有成功:
Actions builder = new Actions(driver);
builder.keyDown(driver.findElement(By.id(id)), Keys.SHIFT).sendKeys(Keys.ARROW_LEFT).perform();
如果有人可以帮助我找到解决方法(或者如果它应该有效而我只是做错了),我将不胜感激!谢谢。
最佳答案
我发布了similar issue earlier today 。 无法提出 Selenium 解决方案,因此改用此解决方法:
import java.awt.Robot
...
Robot robot;
try {
robot = new Robot();
robot.keyPress(KeyEvent.VK_SHIFT);
robot.keyPress(KeyEvent.VK_ARROW_LEFT);
robot.keyRelease(KeyEvent.VK_ARROW_LEFT);
robot.keyRelease(KeyEvent.VK_SHIFT);
}catch (AWTException e) {
e.printStackTrace();
}
希望能有所帮助
关于java - Selenium WebDriver 的 Keys.chord() 函数在 Internet Explorer 中不起作用(9),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13384208/