我正在使用 codedUI 来自动化我的测试用例。我们的开发人员使用 Telerik 的 Kendo UI 控件。使用具有唯一名称的控件进行录制和播放时,我没有任何问题。但是我们很少有控件在同一个文档上动态呈现,并且只有名称作为唯一标识符,并且 html 是自动创建的,我们的开发人员无法控制修改名称或向该 html 添加 id。所以名称已经自动添加了 GUID,并且这个 GUID 在测试用例运行时大部分时间都会发生变化。我尝试在名称字段上使用控件而不是等于运算符,但由于 GUID 位于名称中间,因此很难使用它。例如,这些是两个控件的名称,“Courses[138a47d6-8313-4df4-b39f-caeffd0aecf2].ExternalCoatingId_input”和“ 包含 (ExternalCoatingId_input)) 不作为唯一搜索条件。我真正需要的是名称或 ID,例如“Courses_ExternalCoatingId_input_GUID”。所以我的开发人员理解了我的问题并以我请求的格式添加了 ID,但是由于他们无法控制自动生成的 html,他们创建了一个隐藏控件,该控件链接到具有上述名称的实际控件,并向其中添加了 ID。下面是该类型控件的示例 html 代码。包含 (ExternalCoatingId_input)) 不作为唯一搜索条件。我真正需要的是名称或 ID,例如“Courses_ExternalCoatingId_input_GUID”。所以我的开发人员理解了我的问题并以我请求的格式添加了 ID,但是由于他们无法控制自动生成的 html,他们创建了一个隐藏控件,该控件链接到具有上述名称的实际控件,并向其中添加了 ID。下面是该类型控件的示例 html 代码。他们创建了一个隐藏控件,该控件链接到具有上述名称的实际控件,并为其添加了 ID。下面是该类型控件的示例 html 代码。他们创建了一个隐藏控件,该控件链接到具有上述名称的实际控件,并为其添加了 ID。下面是该类型控件的示例 html 代码。
" span class="k-widget k-combobox k-header" style="width: 220px;" span class="k-dropdown-wrap k-state-default" unselectable="on" tabindex="-1">输入类="k-input" type="text" autocomplete="off" name="Courses[138a47d6-8313-4df4-b39f-caeffd0aecf2].ExternalCoatingId_input" style="width: 100%;" role="combobox" aria-expanded="false" placeholder="选择外部涂层..." tabindex="0" aria-disabled="false" aria-readonly="false" aria-autocomplete="both" aria-owns="tank-组件外部涂层课程-a490312e-c9f5-494a-8d3f-3ccdc33f7660_listbox" aria-activedescendant="坦克组件-外部涂层-课程-a490312e-c9f5-494a-8d3f-3ccdc33f7660_option_selected" aria-busy="false">
span class="k-select" unselectable="on" tabindex="-1"> span
输入 id="tank-component-external-coating-Course-a490312e-c9f5-494a-8d3f-3ccdc33f7660" type="text" style="width: 220px; display: none;" " name="Courses[138a47d6-8313-4df4-b39f-caeffd0aecf2].ExternalCoatingId" data-val-number="ExternalCoatingId 字段必须是数字。" data-val="true" data-role="combobox" aria-disabled="false" aria-readonly="false"
跨度 ”
但是现在,当我尝试在 UImap.uitest 中为该控件添加此 ID 并尝试播放测试时,它会给出错误消息“{”无法在隐藏控件上执行“单击”。其他详细信息: \r\nTechnologyName: 'Web'\r\nControlType: 'Edit'\r\nTagName: 'INPUT'\r\nId: 'tank-component-external-coating-Roof-7341237e-a359-4fb9-b9a3 -29a282c44480'\r\nName: 'Roofs[4400736d-2a50-40ae-87f2-41acdf200e1f].ExternalCoatingId'\r\n"}" 我正在使用 Visual Studio 2012 Premium 和 Windows 8 OS 和 IE 10
对于对问题的非常详尽的解释,我深表歉意,但我在任何特定的论坛中都找不到任何帮助。我发现很少有论坛帖子讨论“无法点击隐藏控件”,但与我的问题完全无关。对于我们如何使用该隐藏的控件 ID 并成功执行我的测试用例的任何建议,我很感激。
谢谢,拉吉