java - 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 文件资源管理器输入中。
任何想法?非常感谢。
解决方案
机器人帮助我摆脱了这个问题。
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 文件资源管理器。
推荐阅读
- asp.net - 如何使用 asp.net mvc 在我的托管计划中创建子域?
- javascript - QuotaExceededError:已超出配额 - 渐进式 Web 应用离线模式
- java - 无法使用 Spring 和 Hibernate 保存表单数据
- python-2.7 - 从麦克风向 Softbank Nao 人形机器人直播音频
- hyperledger-fabric - 超级账本结构是否可以重新生成密钥对
- node.js - 在节点 mongodb 中查询嵌套的对象数组
- r - 由不同变量分组和子集的数据框中的变量相交
- ios - 我可以在 ios 模块中使用 react-native 应用程序的 AppDelegate 吗?
- uiimage - 为什么我的 TabView 在图像加载时变回主页选项卡?
- reactjs - 使用 React ref 回调渲染后滚动到数组中的元素