java - 使用 Java 在 Selenium WebDriver 中按 Escape 不起作用

标签 java selenium-webdriver keypress

我的目标是通过按“Escape”键从页面上退出/删除放大的书籍屏幕。以下是我的代码:

driver.get("http://www.packtpub.com/selenium-webdriver-practical-guide/book");
WebElement cookieClose = driver.findElement(By.id("cookie-close"));
if(cookieClose.isDisplayed()){
cookieClose.click();
}
driver.findElement(By.cssSelector("img.bookimage")).click();
Actions action = new Actions(driver);
action.sendKeys(Keys.ESCAPE).build().perform();

但是使用WebDriver按“Escape”键后书籍图像并没有消失。 (手动按Escape键消失)

最佳答案

以下两种方法可行:

  1. 获取放大的书籍图像的元素定位器 -> 将 Escape 发送到元素。

    WebElement bookImg = driver.findElement(By.id("hoverNav")); bookImg.sendKeys(Keys.ESCAPE);

  2. 您可以通过 Java Robot 类按 Escape 键,如下所示:

    导入java.awt.Robot;
    导入java.awt.event.KeyEvent;

    机器人 r = new Robot();
    r.keyPress(KeyEvent.VK_ESCAPE);
    r.keyRelease(KeyEvent.VK_ESCAPE);

关于java - 使用 Java 在 Selenium WebDriver 中按 Escape 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22379967/

相关文章:

java - 序列化和反序列化 Joda DateTime 对象

java - 一个接口(interface)有两个类型参数。我可以实现两种类型相同的接口(interface),以便它们兼容吗?

java - SeleniumPlus Internet Explorer 测试中输入区域文本警报不会消失

webdriver - 使用 C# 在 WebDriver 中打开新窗口

javascript - 当 - 或 时,ng-keypress 事件不会被触发。按数字键盘上的

java - 在 Java 中用流 api 替换多个 FOR 循环的最佳方法

java - 使用 Saltstack 安装 Java 运行时

python - 为什么 Selenium 在 Chrome 和 Firefox 中可以单击单选按钮,但在 IE 9 中却失败?

c# - 从使用原始输入 API 检索的按键集合中获取字符串

java - 从 getOnKeyPressed 处理 EventHandler