angularjs - 用 Protractor 访问$ scope对象

标签 angularjs protractor qa

我有一个像这样的对象:

$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/

相关文章:

javascript - ng-repeat 无法解析阿拉伯语对象

angularjs - 重新运行 Protractor 超时或失败的测试

junit - Junit测试的报告质量

qa - 设计阶段的质量保证?

java - Maven 配置文件不执行测试

AngularJS 'controller as' 和 form.$valid

javascript - 在 Angular JS ui 路由器中使用 ui-sref 时,不会生成 href

javascript - 无法根据条件重新调用 Angular 函数

javascript - Protractor - 将链接存储在列表中并随机单击

protractor - 我们真的需要在运行 Protractor 之前运行 webdriver-manager start 吗?