Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Selenium WebDriver的Keys.chord()函数在Internet Explorer中不起作用(9)_Java_Internet Explorer_Selenium_Internet Explorer 9 - Fatal编程技术网

Java Selenium WebDriver的Keys.chord()函数在Internet Explorer中不起作用(9)

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类,但没有成

我一直在使用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版本?