【问题标题】:How to press 'Enter' without targeting a WebElement如何在不定位 WebElement 的情况下按“Enter”
【发布时间】:2017-02-08 03:21:35
【问题描述】:

我使用 WebDriver 进行测试,然后出现一个弹出窗口,没有固定属性(自动生成)。

所以,最简单的方法(我认为)是按键盘上的“Enter”键。 但我找不到说“只需点击浏览器,而不是浏览器的元素”的方式。

WebDriver 可以吗?我怎样才能实现它?

【问题讨论】:

    标签: java selenium selenium-webdriver webdriver


    【解决方案1】:

    另一种方法是使用 java.awt.Robot 来模拟键盘的交互,而不是 WebElement 的处理。

    [WebDriver code]

    try {
        Robot robot = new Robot();
        robot.keyPress(KeyEvent.VK_ENTER);
        robot.keyRelease(KeyEvent.VK_ENTER);
        robot.delay(200);
    }
    

    [WebDriver code]

    【讨论】:

      【解决方案2】:
        Robot robot = new Robot();
        robot.keyPress(KeyEvent.VK_ENTER); //press enter key
        robot.keyRelease(KeyEvent.VK_ENTER); //release enter key
      

      您还应该在按下回车键时指定释放命令。

      【讨论】:

        【解决方案3】:

        使用 Actions 实用程序,我们可以达到同样的效果:

        Actions builder = new Actions(driver);
        builder.keyDown(Keys.RETURN).keyUp(Keys.RETURN).build().perform();
        

        【讨论】:

        • 逻辑看起来不错,但我无法在不崩溃的情况下执行它。并且弹出窗口并没有消失..也谢谢您!
        【解决方案4】:

        你可以这样做

        driver.findElement(By.tagName("body")).sendKeys(Keys.ENTER);
        

        【讨论】:

        • 非常感谢!它真的对我有帮助!对于这两个应用程序在此命令后崩溃的缺点。所以我用'try {} catch () {}'框住来防止崩溃。
        猜你喜欢
        • 1970-01-01
        • 2021-03-05
        • 2010-09-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-08-16
        • 1970-01-01
        • 2018-06-06
        相关资源
        最近更新 更多