Java Selenium WebDriver的Keys.chord()函数在Internet Explorer中不起作用(9)
我一直在使用Selenium中的键盘快捷键来执行UI功能,并一直在使用Keys.chord来模拟同时按键。它们在Firefox和Chrome中运行良好,但在InternetExplorer中不起作用。在IE中,似乎每个按键都是单独执行的,而不是一起执行的 以下代码行适用于Firefox和Chrome,但不适用于IE: driver.findElementBy.idid.sendKeysKeys.chordKeys.SHIFT,Keys.ARROW_左 我还尝试了IE中的Actions类,但没有成功:Java Selenium WebDriver的Keys.chord()函数在Internet Explorer中不起作用(9),java,internet-explorer,selenium,internet-explorer-9,Java,Internet Explorer,Selenium,Internet Explorer 9,我一直在使用Selenium中的键盘快捷键来执行UI功能,并一直在使用Keys.chord来模拟同时按键。它们在Firefox和Chrome中运行良好,但在InternetExplorer中不起作用。在IE中,似乎每个按键都是单独执行的,而不是一起执行的 以下代码行适用于Firefox和Chrome,但不适用于IE: driver.findElementBy.idid.sendKeysKeys.chordKeys.SHIFT,Keys.ARROW_左 我还尝试了IE中的Actions类,但没有成
Actions builder = new Actions(driver);
builder.keyDown(driver.findElement(By.id(id)), Keys.SHIFT).sendKeys(Keys.ARROW_LEFT).perform();
如果有人能帮我找到一个解决办法,或者它是否应该有效,而我只是做错了,我将不胜感激!谢谢。我发了一封邮件。
无法提供硒解决方案,因此改用此解决方案:
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();
}
希望这可能会有所帮助当前的驱动程序2.45使用默认选项使用PostMessage,这对于模拟修改键是不可靠的[1][2]。如果您将IE选项RequireWindowFocus设置为true,那么驱动程序将使用SendInput,这将起作用 如果使用C,您将创建如下驱动程序:
var options = new InternetExplorerOptions();
options.RequireWindowFocus = true;
var driver = new InternetExplorerDriver(options);
你的网络驱动程序和IE版本?