Driver.ExecuteJavaScript <object>返回null

时间:2018-01-22 19:57:07

标签: c# selenium automated-tests

如果我从Internet Explorer 11中的开发人员控制台执行此命令,

angular.element('viewer-uigrid').scope().$parent.$parent.reportReq.ReportDefinition.DataSets[0].ColumnDefinitions

我找回了一系列对象。

在测试自动化中,如果我尝试使用:

执行相同的代码
var colDefs = Driver.ExecuteJavaScript<object>("angular.element('viewer-uigrid').scope().$parent.$parent.reportReq.ReportDefinition.DataSets[0].ColumnDefinitions[0]; ");

colDefs变量返回null。 Driver是OpenQA类型的对象.Selenium.IE.InternetExplorerDriver和ExecuteJavaScript是OpenQA.Selenium.Support.Extensions提供的扩展。

知道为什么C#中的返回值为null,但它从控制台返回一个数组?

1 个答案:

答案 0 :(得分:1)

一位同事阐明了这一点。获取值的正确方法是在java脚本字符串中使用“return”,以便值返回并且不会被丢弃,如下所示:

var colDefs = Driver.ExecuteJavaScript<object>("return angular.element('viewer-uigrid').scope().$parent.$parent.reportReq.ReportDefinition.DataSets[0].ColumnDefinitions[0]; ");