可以.text是两个不同td的直接孩子吗?

时间:2012-07-03 01:41:21

标签: html rft

我的RFT代码是

table_cell = find(atList(
                atDescendant(".class" , "Html.TD")
                ,atChild(".text" , "normal")
            ),false
        );

它找到两个对象。我只期待一个,因为我指定我想让TD与直接孩子得到文本“正常”。见屏幕截图。

如果我在两个结果上都使用.getMappableParent()方法,我会得到两个表(我在一张表后)看到图片。

有人可以解释为什么我有两件物品?

enter image description here

有关atChild and RFT find() method

的一些信息

atChild - 必须与起始测试对象的直接子项匹配的一个或多个属性

1 个答案:

答案 0 :(得分:2)

我不是百分百肯定,但我认为RFT使用“.text”作为元素的XML样式属性。 http://www.w3schools.com/dom/prop_element_text.asp

您正在找到atList(),这意味着使用前面的规则结果作为输入,一个接一个地应用查找规则,因此:

1-搜索所有属于RootTestObject的孩子的TD

2-在那些TD中,搜索每个具有“正常”作为文本孩子的TD

但是由于“。text”返回 ALL 每个子节点中包含的文本,您会找到2个与此属性匹配的TD。 不过,我不确定文本匹配是如何工作的,我认为不是完全匹配,而是一种Regexp-way或者包含。

您可以尝试从外表开始查找

  

table_cell = table_outer()。find(atList(                  atDescendant(“。class”,“Html.TD”)                  ,atChild(“。text”,“normal”)              ),假          );

或通过查找

中的正确结果
  

real_table_cell = table_cell [1];

希望这有帮助。