java - 无法在 anchor 元素上执行 Enter 键

标签 java selenium selenium-webdriver

Java版本:7,Selenium版本:2.45

我无法使用 sendKeys 方法对链接( anchor 标记)执行 ENTER。

第1步:使用sendKeys方法执行TAB(这有效)。该链接具有焦点。我可以手动按键盘上的 ENTER,它将触发链接。

第 2 步:使用 sendKeys 方法执行 ENTER(或 RETURN)(不起作用)。

我已经尝试过:

  • ENTER 之前添加 thread.sleep
  • ENTER 之前添加 webDriver.wait
  • 使用 webDriver.switchTo().activeElement() 检索 Activity 元素,然后执行 ENTER 操作。请注意,使用相同的方法,我可以在元素上执行单击,而不是ENTER
  • 尝试了不同的方法来发送按键(使用 Actions 对象,将按键直接发送到元素)。

请注意:

  • 当发生等待(在发送我的ENTER之前)时,将选择链接。
  • 用另一个 TAB 替换我的 ENTER 会聚焦到正确的元素。
  • 每次 sendKeys 调用后,我都会让 Web 驱动程序等待任何 ajax 调用等。所以这不是问题。

感谢任何和所有帮助/提示。谢谢! P.S:不用说,我已经浏览了所有其他关于此的 SO 帖子。

最佳答案

下面的方式怎么样

    Actions a=new Actions(driver);
    a.moveToElement(driver.findElement(By.name("yourlocator"))).build().perform();

    Keyboard h=((HasInputDevices)driver).getKeyboard();
    h.pressKey(Keys.ENTER);
    h.releaseKey(Keys.ENTER);

谢谢你, 穆拉利

好不好请评论。如果有不对的地方还请大家指正,以提高自己。

关于java - 无法在 anchor 元素上执行 Enter 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30110616/

相关文章:

java - 搜索指定的键和值是否存在

java - Kotlin 生成的字节码会影响方法计数吗?

python - selenium.common.exceptions.InsecureCertificateException : probably due to HSTS policy

java - 如果我通过 Selenium Webdriver 和 Java 知道相应的文本,如何提取 DOM 元素的 ID 属性

python - 使用 python 和 Selenium 等待元素可点击

java - RESTful Web 服务中的 URL 是否可以为具有不同授权级别的用户执行不同的操作?

java - Camel + jackson : Register a module for all deserialization

selenium - 如何将 RemoteWebDriver 指向多个独立 docker selenium 独立 chrome 浏览器之一?

xpath - 如何在 selenium webdriver 中获得 Xpath 计数

java - 如何根据selenium webdriver中的其他元素选择一个元素