【问题标题】:UI Automation White framework "NonComVisibleBaseClass was detected" exceptionUI自动化白色框架“检测到NonComVisibleBaseClass”异常
【发布时间】:2014-03-13 05:29:04
【问题描述】:

我正在测试一个加载 powerpoint(.ppt 或 .pptx)文件的应用程序插入它。当文件在应用程序中加载时,应用程序给人的感觉就像 powerpoint 一样,并带有一些额外的设置。当我尝试自动化应用程序时,我单击一个按钮将 powerpoint 文件加载到应用程序中。加载过程后白色框架无法继续播放。

当我再次重新启动相同的测试时,我得到了“NonComVisibleBaseClass was detected”异常。

我只能在重新启动整个应用程序后继续我的测试。有人遇到这种问题吗?您的回答对我继续测试很有帮助。

【问题讨论】:

    标签: automated-tests ui-automation ui-testing white-framework


    【解决方案1】:

    这是已知问题。
    http://social.msdn.microsoft.com/Forums/en-US/27c3bae8-41fe-4db4-8022-e27d333f714e/noncomvisiblebaseclass-was-detected?forum=Vsexpressvb

    1. 导航到调试->异常...
    2. 展开“托管调试助手”
    3. 取消选中 NonComVisibleBaseClass Thrown 选项。
    4. 点击[确定]

    【讨论】:

    • 感谢您的回答,但我已经尝试过了。现在没有“检测到NonComVisibleBaseClass”异常,但现在我得到了“空引用异常”。这仅在单击按钮加载应用程序内的 powerpoint 幻灯片时才会发生。
    • 我认为您应该在某些地方添加服务员(简单的变体是 Thread.Sleep(1000))。如果您尝试单击尚未出现的按钮(例如 myButton.Click()),则可能会发生此异常。
    • 好的,但是当我单击按钮时,它会加载新窗口。之后测试失败。是否有可能在应用程序内部加载 PowerPoint 后,哪些应用程序状态(内部流程更改)不支持测试。
    • 根据我的分析,我发现,在应用程序内部加载 PowerPoint 后,所有控件都更改为“自定义控件”。有没有办法在 White 框架中处理自定义控件?
    • @S.Roshanth:我在使用 UI 自动化识别控件时也面临同样的问题。如果您对此问题有任何解决方案,请告诉我。在取消选中 NonComVisibleBaseClass Thrown 选项后,我也开始收到 Null 引用异常。我正在尝试识别 Excel 2019 中的 Excel 插件控件。以前我们使用的是 excel 2016,并且使用 UI 自动化识别了相同的控件,但在迁移到 excel 2019 之后。现在这个控件抛出错误“检测到 NonComVisibleBaseClass”。
    【解决方案2】:

    在遇到同样的问题后,我偶然发现了这个页面。虽然我不确定这个解决方案是否对您有所帮助,但它对我有所帮助,也许对其他人有用。

    我的 WPF 应用程序需要以提升的权限运行,如果我尝试在没有提升的权限的情况下运行 VS,我的测试会因上述错误而中断。我所做的只是将 VS 重新启动为管理员,然后测试就开始工作了。

    我注意到的一件事是,当我在没有提升权限的情况下运行时,Window.Framework 是“Win32”,而 Window.Items 是空的。以管理员身份运行 VS 后,Framework 属性为“Wpf”,并且 Items 列表已正确填写。我不知道这里问题的真正原因是什么。但它对我有用,也许对其他人也有用。

    【讨论】:

      猜你喜欢
      • 2014-06-05
      • 2019-09-15
      • 2018-09-06
      • 1970-01-01
      • 2011-01-12
      • 2010-11-06
      • 1970-01-01
      • 2012-02-25
      • 1970-01-01
      相关资源
      最近更新 更多