Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 量角器:等待量角器与页面同步时出错:{}_Angularjs_Protractor - Fatal编程技术网

Angularjs 量角器:等待量角器与页面同步时出错:{}

Angularjs 量角器:等待量角器与页面同步时出错:{},angularjs,protractor,Angularjs,Protractor,好的,我有一个angular应用程序,其中有指令和其他一些普通的html元素。 这个指令很有趣,因为它使用RaphaelJs创建自定义图形。该指令还使用requirejs加载依赖项(如raphel.js)。一切正常:) 现在是最难的部分。我想写一些E2E测试用例。我想选择由指令创建的svg元素,并检查一些属性值 因此,在浏览器(Chrome)控制台中,我键入$('tspan'),我看到许多tspans元素由简单的css选择器返回 样本tspan <tspan dy="7" style="-

好的,我有一个angular应用程序,其中有指令和其他一些普通的html元素。 这个指令很有趣,因为它使用RaphaelJs创建自定义图形。该指令还使用requirejs加载依赖项(如raphel.js)。一切正常:)

现在是最难的部分。我想写一些E2E测试用例。我想选择由指令创建的svg元素,并检查一些属性值

因此,在浏览器(Chrome)控制台中,我键入$('tspan'),我看到许多tspans元素由简单的css选择器返回

样本tspan

<tspan dy="7" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">Somevalue</tspan>
它记录了以下内容:

{ click: [Function],
  sendKeys: [Function],
  getTagName: [Function],
  getCssValue: [Function],
  getAttribute: [Function],
  getText: [Function],
  getSize: [Function],
  getLocation: [Function],
  isEnabled: [Function],
  isSelected: [Function],
  submit: [Function],
  clear: [Function],
  isDisplayed: [Function],
  getOuterHtml: [Function],
  getInnerHtml: [Function],
  findElements: [Function],
  isElementPresent: [Function],
  evaluate: [Function],
  '$$': [Function],
  findElement: [Function],
  '$': [Function],
  find: [Function],
  isPresent: [Function] }
当我尝试访问同一元素上的getText方法时,我得到

 var svgElement = $('tspan');
    console.log(svgElement.getText());

C:\Users\abc\AppData\Roaming\npm\node_modules\protractor\node_modules\seleniu
m-webdriver\lib\webdriver\promise.js:1549
      throw error;
            ^
Error while waiting for Protractor to sync with the page: {}

无法理解根本原因。有人能帮忙吗?

我刚刚学到了量角器和测角器是紧密耦合的

使用angular 1.2.16和量角器0.23.1会导致错误-似乎内部angular API已更改。(量角器中的测试正在尝试执行:

  angular.element(el).injector().get('$browser').notifyWhenNoOutstandingRequests(callback);
1.2.16中的元素上不存在injector()。因此我失败了)


在我的例子中,我正在测试升级到angular 1.3-beta.10,这似乎会导致一个更加协调的世界(至少与量角器0.23.1有关)

如果这是一个问题,我想你会得到一个不同的错误,但我认为你可能需要格式化getText(),如下所示,因为它使用了承诺

var svgElement = $('tspan');
svgElement.getText().then(function (text){
   console.log(text);
}
你的测试正在运行吗?我只有“等待量角器与页面同步时出错:{}”,因为ng应用程序不在body标记上,请参阅以获取解决方案。

在运行第一个测试之前,请尝试添加“browser.ignoreSynchronization=true;”(或“ptor.ignoreSynchronization=true;”)。
var svgElement = $('tspan');
svgElement.getText().then(function (text){
   console.log(text);
}