在TestComplete中无法使用EvaluateXPath方法找到TD的DIV

时间:2014-05-29 10:25:54

标签: javascript testcomplete

使用TestComplete-10.20.953.7

我的情景是这样的..

<tr>
  <td>
  <td>
    <div>requirdText</div>
  <td>
  <td>
    <div>STATUS</div>
  <td>
  .
  .
  .

</tr>

如果页面包含EvaluateXPath

,我正尝试使用"STATUS"方法查找"requiredText"

这是我的XPath ..

Browsers.Item(btIExplorer).Run("http://xxx/yyy/#zzzz:A-BC-");

var page = Sys.Browser("*").Page("*");

var obj = page.EvaluateXPath("//*[contains(text(), '" + text+ "')]/../../td[4]/div");

if ( obj !== null && obj !== undefined ) {

  var status = obj[0].innerText;
  Log.Message(status);
}

当我运行脚本时,它会给我以下错误...

'0.innerText' is null or not an object

知道可能出现什么问题或者我的预期结果如何?

先谢谢你的帮助。

1 个答案:

答案 0 :(得分:3)

您需要将EvaluateXPath结果转换为JScript兼容的数组:

var obj = page.EvaluateXPath(...);

if (obj != null) {
  obj = obj.toArray();
  ...
}

或者,您可以使用FindChildByXPath - 它返回单个对象而不是数组。