Windows技术自动化QT常见问题

下面是使用Windows技术对Qt应用进行自动化时可能会遇到的问题和解决方法。CukeTest更建议使用跨平台Qt自动化的技术来自动化Qt应用,不仅有更易用和强大的API,也有更稳定的运行效果。

Q: 无法识别Qt应用的控件类型

A: 在对Qt 4.x编写的应用进行控件识别时,有时会出现模型管理器无法识别出控件类型的情况,全部显示为Custom类型,这是由于缺少了accessible插件,解决方案详见HOWTO:识别Qt应用的控件类型

Q: 为什么Tree 控件的Collapse和Expand方法调用不成功?

A:: Windows自动化库为标准控件设计,也能支持基本所有的QT控件,但QT Tree控件不是标准Windows控件,因此并非所有方法都支持。TreeItem控件上的Collapse和Expand方法在QT Tree上不支持,会显示错误 “1003: CannotPerformThisOperation”. 可以调用TreeItem控件的dblClick方法展开或折叠。

Q: QT 的 ComboBox控件的select方法不起作用?

A:: QT的ComboBox不是标准Windows控件,并非所有方法都支持。调用时需要调用方法组合完成:

在模型管理器中,需要添加两个相关对象:1. ComboBox控件,2. ComboBox展开后的选项中的一个,即ListItem控件。

代码中:

  1. 调用ComboBox的open方法展开下拉框
  2. 调用getListItem,获得需要的ListItem。这里在第二个参数中,用你想要选择的name值覆盖模型对象中name值,动态获取需要的ListItem元素。

样例代码如下:

JavaScript
Python
await model.getComboBox("<ComboBoxName>").open();
await model.getListItem("<ListItemNameInModel>", {name: '<list item name>'}).click();
model.getComboBox("<ComboBoxName>").open()
model.getListItem("<ListItemNameInModel>", {name: '<list item name>'}).click()

Q: QT Tab控件的Select 方法对尚未显示的Tab标签页无法Select?

A:: 未进入显示区域的Tab标签无法Select,需要点击标签页边上的左右箭头按钮,将标签页移动到显示区域然后再点击。

Q: QT 控件中识别属性较少,很多控件识别后生成的对象不能唯一标识控件,需要手动加索引,有什么好办法吗?

A:: 可以让模型管理器自动加索引。方法如下:

  1. 在选中一个控件后,”添加对象”窗口中去点击”验证唯一性”对话框。这时如果不唯一,会出现下面不能唯一识别信息。

  2. 可以点击添加索引按钮,使唯一识别。

  3. 这时会弹出成功添加索引提示框:

  4. 这时加入到模型中会添加索引:

Q: QT中Date Edit日期控件,如何设置值?

A: 可以通过先dblClick双击控件的前部,然后pressKeys输入日期内容。

Q: Qt中Table控件,如何动态的访问它的行、列、单元格?

A: 查看HOWTO: Qt中Table的自动化,获得更详细的帮助。

results matching ""

    No results matching ""