首页 > 解决方案 > Selenium 使窗口失焦

问题描述

我知道我不是第一个尝试使用 Selenium 从 Windows 文件资源管理器上传文档的人(我以前做过),但是这个应用程序做得很奇怪

基本上,您单击一个input元素,然后在 keyup 上,会出现一个 Windows 文件资源管理器。

在我的测试中,我填充了剪贴板并尝试在 Windows 文件资源管理器输入中发送文件路径(这似乎是重点):

String myString = text;
StringSelection stringSelection = new StringSelection(myString);
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(stringSelection, null);
Actions action = new Actions(driver);
action.sendKeys(Keys.chord(Keys.CONTROL, "v")).perform();
action.build().perform();

不幸的是,接收粘贴文本的是浏览器输入。

我愿意取消关注此输入,因此文本可能会粘贴到 Windows 文件资源管理器输入中。

任何想法?非常感谢。

标签: javaseleniumselenium-webdriverautomated-tests

解决方案


机器人帮助我摆脱了这个问题。

try {
    Robot r = new Robot();
    r.keyPress(KeyEvent.VK_CONTROL);
    r.keyPress(KeyEvent.VK_V);
    r.keyRelease(KeyEvent.VK_CONTROL);
    r.keyRelease(KeyEvent.VK_V);
} catch (AWTException e) {
    e.printStackTrace();
}

Actions action = new Actions(driver);应该给我一个提示:如果我们在搞乱驱动程序,那么就不可能搞乱 Windows 文件资源管理器。


推荐阅读