【问题标题】:Access $scope object with protractor使用量角器访问 $scope 对象
【发布时间】:2015-07-01 07:33:57
【问题描述】:

我得到了一个类似的对象:

$scope.project = {name: 'whatever', description: 'blabla', another: 'another'};

为了调试它,我进入 repl 模式并尝试查看“项目”有什么。 当我如下定义项目变量并调用它时,它返回我的对象​​,但是当我尝试访问它的键(project.name)时,我得到了未定义。如果我执行 Object.keys(project),我将获得页面对象方法,例如 click、getAttribute 等。

关于如何访问原始对象键的任何想法?

查看面:

<h1 id="foo">{{project.name}}</h1>

测试方:

var project = element(by.id('foo')).evaluate('project');

【问题讨论】:

    标签: angularjs protractor qa


    【解决方案1】:

    evaluate 在幕后使用executeScript。它返回一个ElementFinder,它解析为您正在寻找的对象:

    var project;
    element(by.id('foo')).evaluate('project').then(function(value) {
        project = value;
    });
    

    documentation 说:

    解析为每个底层的评估表达式 元素。结果将被解析为 webdriver.WebDriver.executeScript。总之 - 原语将是 按原样解析,函数将转换为字符串,元素 将作为 WebElement 返回。

    另外,请查看Accessing Angular inside Protractor Test

    编辑:语法错误

    【讨论】:

    • 似乎有些语法错误。应该是element(by.id('foo')).evaluate('project').then(function(value) { project = value; });
    • value 代表什么?
    • 评估使用 Promise。该值应在评估“项目”后给出返回的数据
    猜你喜欢
    • 2018-07-23
    • 2014-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-16
    • 2015-08-31
    相关资源
    最近更新 更多