我有一个像这样的对象:
$scope.project = {name: 'whatever', description: 'blabla', another: 'another'};
要调试这个,我进入repl模式并尝试查看" project"具有。 当我定义项目变量如下,并调用它,它返回我的对象,但当我尝试访问其键(project.name)时,我得到undefined。如果我做Object.keys(项目)我得到的页面对象方法,如click,getAttribute等。
关于如何访问原始对象键的任何想法?
查看方:
<h1 id="foo">{{project.name}}</h1>
测试方:
var project = element(by.id('foo')).evaluate('project');
答案 0 :(得分:13)
evaluate
在幕后使用executeScript
。它返回一个ElementFinder
,它会解析为您要查找的对象:
var project;
element(by.id('foo')).evaluate('project').then(function(value) {
project = value;
});
解析为每个底层的计算表达式 元件。结果将按原样解决 webdriver.WebDriver.executeScript。总之 - 原语将是 按原样解析,函数将转换为字符串和元素 将作为WebElement返回。
另外,请查看Accessing Angular inside Protractor Test
编辑:语法错误