我有一个像这样的对象:
$scope.project = {name: 'whatever', description: 'blabla', another: 'another'};
为了调试这个问题,我进入了repl模式并尝试查看“项目”有什么。
当我如下定义项目变量并调用它时,它返回我的对象,但是当我尝试访问其键(project.name)时,却无法定义。如果我做Object.keys(project)我正在获取页面对象方法,例如click,getAttribute等。
关于如何访问原始对象 key 的任何想法?
侧面:
<h1 id="foo">{{project.name}}</h1>
测试方:
var project = element(by.id('foo')).evaluate('project');
最佳答案
evaluate
在幕后使用executeScript
。它返回一个ElementFinder
,解析为您要查找的对象:
var project;
element(by.id('foo')).evaluate('project').then(function(value) {
project = value;
});
documentation说:
which resolves to the evaluated expression for each underlying element. The result will be resolved as in webdriver.WebDriver.executeScript. In summary - primitives will be resolved as is, functions will be converted to string, and elements will be returned as a WebElement.
另外,请查看Accessing Angular inside Protractor Test
编辑:语法错误
关于angularjs - 用 Protractor 访问$ scope对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31155187/