browser.executeScript给出错误(Angularjs,量角器,单元测试)

时间:2013-12-10 08:01:14

标签: unit-testing angularjs protractor

在我的测试中,我有一段代码,linux.executeScript执行但是有一些错误,我无法修复

这是browser.executeScript代码:

browser.executeScript('var allcookies = document.cookie;
cookiearray = allcookies.split(";");
for (var i = 0; i < cookiearray.length; i++)
{
    name = cookiearray[i].split("=")[0];
    value = cookiearray[i].split("=")[1];
    console.log("Key is : " + name + " and Value is : " + value);
}
sidValue = value;
console.log(value);
console.log(sidValue);
receiptNumber = $scope.row.nr;
window.location.href("https://www.mysite.nl/info?sid=" + sidValue + "&filter={nr:" + receiptNumber + "}");');

我有两个问题:

  1. $ scope.row.nr,它表示$ scope未定义
  2. 在我的window.location.href上,它说对象[对象位置]的属性'href'不是一个函数(当我删除href时,它只是说位置相同)。
  3. 有人知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

executeScript在全局上下文中运行,其中$scope未由angular定义。如果您转到Web控制台并输入$scope,则可以复制它。

您需要像这样查询元素范围属性 angular.element( document.querySelectorAll('.your-element')[0] ).scope()

然后看起来@Basman01有你第二个问题的答案。