首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测ErrorProvider的错误信息

检测ErrorProvider的错误信息
EN

Stack Overflow用户
提问于 2013-07-03 02:23:55
回答 1查看 526关注 0票数 1

目前的场景只是原始应用程序的一个虚拟。我有一个带有2个textboxes,1个ErrorProvider和一个button Validate的表单。当文本框为空并单击Validate时,文本框前会出现2个错误提供程序,分别显示input 1 missinginput 2 missing。下面是表格

现在,我的自动化团队正在尝试检测errorProvider工具提示。他们正在使用QTP。在对这方面的了解很少的情况下,我开始了我的分析。我在QTP中尝试的是

SwfEdit("textbox1").GetErrorProviderText(),但没用。我总是收到空文本。

然后我决定使用White框架来实现这些事情。我可以获取errorProvider控件,但不确定如何获取每个文本框的错误消息。这就是我写到现在的代码

代码语言:javascript
复制
AutomationElement rootElement = AutomationElement.RootElement;
var winCollection = rootElement.FindAll(TreeScope.Children, Condition.TrueCondition);

var automationElement = (from AutomationElement n in winCollection where n.Current.Name == "Error Provider Test" select n).FirstOrDefault();

if (automationElement != null)
{
    Condition propCondition = new PropertyCondition(AutomationElement.AutomationIdProperty, "errorProviderInput", PropertyConditionFlags.IgnoreCase);
}

我不确定如何继续下去,也不确定我是否在正确的道路上。我将很高兴听到实现这一目标的新想法、建议或指导。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-22 17:07:41

我最终找到了这个问题的解决方案。

通过我的分析,我注意到QTP在读取.Net Framework4.0或更高版本的控件时出现了一些问题。

建议的解决方案:

如果在安装QTP后在机器上安装了.Net framework,则

  1. 通常无法检测到.Net framework 4.0版本。从头开始全新安装可能有助于解决此问题。卸载QTP和.Net框架,然后先安装.Net框架,然后再安装QTP)。
  2. 为了手动解决这个问题,我们必须手动注册2个dll。它们是Mercury.QTP.Agent.dll和Mercury.QTP.WpfAgent.dll。按照以下步骤注册dlls。

代码语言:javascript
复制
- Install QTP\_00709 patch if you are using 64 bit OS.
- Open command prompt in Administrator mode.
- Navigate to the location where Mercury.QTP.Agent.dll and Mercury.QTP.WpfAgent.dll are placed.
- Type

..\..\bin\GACRegUtil4x86.exe -i Mercury.QTP.Agent.dll

..\..\bin\GACRegUtil4x86.exe -i Mercury.QTP.WpfAgent.dll

希望能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17433049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档