如何访问不可访问的UI元素?SQL Developer自动化检测按钮异常求助
解决Windows Accessibility Insights无法检测SQL Developer绿色加号按钮的方案
可能原因及对应解决方法
启用SQL Developer的辅助功能支持
SQL Developer部分UI基于Java Swing实现,对Windows自动化支持有限。修改启动配置强制开启辅助功能:
找到SQL Developer安装目录下的sqldeveloper.conf文件,添加以下配置:AddVMOption -Dsun.awt.enableExtraMouseButtons=true AddVMOption -Djavax.accessibility.assistive_technologies=com.sun.java.accessibility.AccessBridge重启SQL Developer后再用Accessibility Insights检测。
用FlaUI直接遍历控件树定位
跳过Accessibility Insights,直接通过FlaUI API遍历控件查找目标按钮:// C#示例代码 var application = FlaUI.Core.Application.Attach("sqldeveloper.exe"); var mainWindow = application.GetMainWindow(); // 按控件类型+文本/位置特征查找 var plusButton = mainWindow.FindFirstDescendant(cf => cf.ByControlType(FlaUI.Core.Definitions.ControlType.Button) .And(cf.ByText("+"))); if (plusButton != null) { string automationId = plusButton.AutomationId; // 获取ID后执行后续自动化操作 }也可结合控件的
BoundingRectangle位置属性辅助定位,比如绿色按钮的屏幕坐标特征。换用Windows自带Inspect工具
使用Windows SDK中的Inspect.exe,它对Java Swing控件的兼容性更好,能直接查看控件的AutomationId等自动化属性。提升工具运行权限
确保Accessibility Insights以管理员身份启动,避免权限不足导致无法检测控件。
补充
如果以上方法均无效,说明该按钮未正确暴露自动化属性,可考虑临时用鼠标坐标模拟点击(稳定性较差),或联系Oracle确认SQL Developer的自动化支持细节。
内容的提问来源于stack exchange,提问作者Sharad
相关产品推荐
相关产品推荐

