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/