使用vscode-extension-tester重命名文件夹/文件时遇到交互问题
使用vscode-extension-tester重命名文件夹/文件时遇到交互问题
我之前也踩过这个坑!你说的情况完全没错——触发重命名后弹出的确实不是标准的InputBox组件,它是嵌入在资源管理器里的行内编辑输入框,得换个思路来定位和操作它。
其实我们可以通过WebDriver的元素定位能力来获取这个输入框,配合显式等待确保元素加载完成,具体的代码实现如下:
// 你已有的触发重命名的代码 await item?.select(); const menu = await item?.openContextMenu(); await menu?.select('Rename...'); // 新增的重命名输入框操作逻辑 import { By, until, Key } from 'selenium-webdriver'; // 显式等待重命名输入框出现,超时时间设置为5秒 const renameInput = await driver.wait( until.elementLocated(By.xpath("//input[contains(@aria-label, 'Rename')]")), 5000 ); // 清空原有名称(可选操作,直接输入新名称也会覆盖原有内容,但清空更稳妥) await renameInput.clear(); // 输入你想要的新文件夹/文件名 await renameInput.sendKeys("your-new-folder-name"); // 按下回车键确认重命名操作 await renameInput.sendKeys(Key.ENTER);
一些实用小提示:
- 如果你的测试环境里,重命名输入框的
aria-label文本有差异,可以打开测试运行时的VSCode窗口,按F12调出开发者工具,直接查看这个输入框的DOM属性,调整xpath的定位条件(比如改用类名By.className('renamable-input'),具体以实际元素属性为准) - 务必使用显式等待(
driver.wait),不要依赖隐式等待,这样能避免因元素未加载完成就执行操作导致的报错 - 确保你的vscode-extension-tester版本和对应的VSCode版本兼容,不同版本的VSCode可能会微调这个输入框的DOM结构
内容来源于stack exchange
相关产品推荐
相关产品推荐

