无法在Selenium中执行多个Keys操作

时间:2016-09-08 03:17:44

标签: selenium selenium-webdriver selenium-chromedriver selenium-grid

以下是按下CONTROL键并在HTML文件上选择多个图块的代码。它没有达到预期的效果。

有人可以帮我吗?

public class ActionBuildPerform {

    public static void main(String... args) {

        WebDriver driver = new FirefoxDriver();

        driver.get("file://C:/selectable.html");

        WebElement one = driver.findElement(By.name("one"));
        WebElement three = driver.findElement(By.name("three"));
        WebElement five = driver.findElement(By.name("five"));

        // Add all the actions into the Actions builder.
        Actions builder = new Actions(driver);

        builder.keyDown(Keys.CONTROL)
                .click(one)
                .click(three)
                .click(five)
                .keyUp(Keys.CONTROL);
        // Generate the composite action.

        Action compositeAction = builder.build();
        // Perform the composite action.
        compositeAction.perform();
    }
}

3 个答案:

答案 0 :(得分:0)

  

使用Java Robot类

 try {
              Robot robot = new Robot();

     //ctrl TAB  

            robot.keyPress(KeyEvent.VK_CONTROL);

          .click(one)
          .click(three)
          .click(five)

          robot.keyRelease(KeyEvent.VK_CONTROL);

          } catch (AWTException e) {
                  e.printStackTrace();
          }
}

答案 1 :(得分:0)

请注意此问题之前已得到解答。您可以在此处找到相应的代码。 Stack OverFlow Keypress Event

答案 2 :(得分:0)

感谢大家的帮助和回复。我能够通过使用Selenium 2.53.0和Firefox 46.0来解决这个问题。我的Selenium版本似乎没有使用兼容版本的浏览器。