regex - QTP:如何在检查点属性编辑对话框中获取 "complex value"编辑控件?

标签 regex testing qtp

考虑这个脚本:

   SystemUtil.Run "notepad.exe"
   With Window("Notepad")
    .WinEditor("Edit").Type "A"
    .WinEditor("Edit").Type  micReturn
    .WinEditor("Edit").Type "B"
    .WinEditor("Edit").Check CheckPoint("Edit")
   End With

编辑检查点只是检查 WinEditor 的 Text 属性是否等于我们输入的内容:“A”、回车、换行、“B”。 (这正是编辑器包含的内容,您可以通过查看 GetROProperty ("Text") 进行验证,它返回一个长度为 4 且 ASCII 为 65、13、10、66 的字符串,这正是我希望。)

如果我使用上次 Type 调用的事件屏幕创建检查点并使用其中包含的值,我将在对话框中获得“复杂值”编辑控件以编辑 Text 属性值。它支持只需按 Enter 即可输入换行符。到目前为止,还不错。

如果我手动创建检查点并手动输入 Text 属性的预期值,我会在那里得到一个简单的编辑控件。我不能在那里输入带换行符的字符串。

问题是:如果我最初没有使用“复杂”值创建检查点,例如没有换行符的字符串,我如何使用复杂值编辑控件输入预期的字符串值?

如果我根本做不到,这将是一个设计故障——考虑一下:假设您使用事件屏幕创建它,然后将预期值编辑为微不足道的值。这导致(微不足道的)预期值从现在开始只能使用简单的编辑控件进行编辑——而且我无法撤消我的更改并重新编辑预期值以包含换行符。

一个想法是创建一个正则表达式。上述示例的正则表达式为 "A\cM\cJB"。但是,这不起作用。一个单独的问题 ( QTP: How do I match (or parametrize) line breaks in multiline edit controls? ) 问为什么,所以让我们在这个问题中尽量避免这个正则表达式方面。 另外,我想知道如果不作为正则表达式,我将如何将包含换行符的值参数化为数据表列。我无法在数据表单元格中输入换行符。但这方面也在正则表达式问题中,所以让我们在这里也避免这个方面。

最佳答案

QTP 的制造者 ;) 承认这是“设计使然”:)

解决方法可能是使用更新模式来捕获包含 CR LF 序列的值。然后,可以返回到“复数值”编辑对话框。

但是 QTP GUI 明确地没有提供摆脱编辑“死胡同”的方法。

关于regex - QTP:如何在检查点属性编辑对话框中获取 "complex value"编辑控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5554229/

相关文章:

php - PHP中的preg_replace按组

c# - 如何在 VS 2008 单元测试中使用数据文件?

regex - 匹配新行,为什么 [.\n]* 在正则表达式中不起作用?

javascript - 正则表达式有问题

php - youtube channel URL 的正则表达式

apache-flex - 将自动化库添加到 AIR 项目时找不到 Automation_agent 和 qtp_air 资源包

vbscript - ReDim Array语法完整性检查-预期语句错误

testing - 如何使用禁用的 JavaScript 和 noscript 标签对网站进行 e2e 测试?

wpf行为单元测试

automation - 'Exist()' 方法(在 QTP 中)将在什么基础上识别打开的应用程序中是否存在测试对象?