C# 监视swing窗口时Ranorex表单元素将变为null

C# 监视swing窗口时Ranorex表单元素将变为null,c#,swing,xpath,ranorex,C#,Swing,Xpath,Ranorex,我有一个弹出式容器,里面有一个DefaultComboxModel。该模型包含一个JComboBox,其中包含一个机器名列表 当我只是监视JComboBox时,它将xPath显示为/form[@title='MachinePage']/container[@type='JPanel']//combobox[@name='MachinePopup'] 但是当我从ComboBox中发现一台机器时,我得到的xPath是/form//container/list[@name='ComboBox.list

我有一个弹出式容器,里面有一个DefaultComboxModel。该模型包含一个JComboBox,其中包含一个机器名列表

当我只是监视JComboBox时,它将xPath显示为
/form[@title='MachinePage']/container[@type='JPanel']//combobox[@name='MachinePopup']

但是当我从ComboBox中发现一台机器时,我得到的xPath是
/form//container/list[@name='ComboBox.list']/listitem[@text='Ferrari']

我这里没有表格名。有人能说出原因吗?

这是Ranorex的一个令人讨厌的特性。您永远不会真正知道Ranorex生成的XPath的一部分是什么

这是由Ranorex为了简化XPath而应用的
StepCostReduce
模型造成的。幸运的是,您可以在选项中进行更改:

我还没有一个关于影响的全面概述。当设置为
Simple
时,它将记录许多属性。这可能会导致性能下降,因为查询应用程序中的所有值需要一些时间。IMHO这样的性能下降仍然比不工作或不容易损坏的测试更可取

如果您了解Ranorex的内部结构(我还不了解),您还可以更改
StepCostReduce
模型的选项,并根据需要进行优化:

SAP中的按钮示例:

这是Ranorex的一个(讨厌的)特性。您永远不会真正知道Ranorex生成的XPath的一部分是什么

这是由Ranorex为了简化XPath而应用的
StepCostReduce
模型造成的。幸运的是,您可以在选项中进行更改:

我还没有一个关于影响的全面概述。当设置为
Simple
时,它将记录许多属性。这可能会导致性能下降,因为查询应用程序中的所有值需要一些时间。IMHO这样的性能下降仍然比不工作或不容易损坏的测试更可取

如果您了解Ranorex的内部结构(我还不了解),您还可以更改
StepCostReduce
模型的选项,并根据需要进行优化:

SAP中的按钮示例:


如果将第二个XPath修改为在表单和//之间插入[@title='MachinePage'],您仍然可以找到listitem'Ferrari'吗?有时Ranorex Spy需要一些帮助来创建最佳XPath…如果修改第二个XPath以在表单和//之间插入[@title='MachinePage'],您仍然可以找到listitem'Ferrari'吗?有时Ranorex Spy需要一些帮助来创建最佳XPath。。。