Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.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 既不是waitForAngular也不是“waitForAngular”;然后";如期工作_Angularjs_Typescript_Protractor_Angularjs E2e - Fatal编程技术网

Angularjs 既不是waitForAngular也不是“waitForAngular”;然后";如期工作

Angularjs 既不是waitForAngular也不是“waitForAngular”;然后";如期工作,angularjs,typescript,protractor,angularjs-e2e,Angularjs,Typescript,Protractor,Angularjs E2e,我尝试了以下内容中提到的所有变体: 第一个 element(by.css('[ng-click="vm.openNewPage()"]')).click().then(function () { expect(element(by.css('[ng-click="vm.submitButtonOfThatPage()"]')).isPresent()).toBe(true); }); 第二个 element(by.css('[ng-click="vm.openNewP

我尝试了以下内容中提到的所有变体:

第一个

 element(by.css('[ng-click="vm.openNewPage()"]')).click().then(function () {
        expect(element(by.css('[ng-click="vm.submitButtonOfThatPage()"]')).isPresent()).toBe(true);
    });
第二个

element(by.css('[ng-click="vm.openNewPage()"]'));
browser.waitForAngular();        
expect(element(by.css('[ng-click="vm.submitButtonOfThatPage()"]')).isPresent()).toBe(true);
第三个:

element(by.css('[ng-click="vm.openNewPage()"]'));
browser.sleep(1)
browser.waitForAngular();        
expect(element(by.css('[ng-click="vm.submitButtonOfThatPage()"]')).isPresent()).toBe(true);
它们都没有通过测试:预期false为true。 除了这个带browser.sleep(1000)的

为睡眠时间留出几秒钟显然不是解决办法

我遗漏了什么,或者我应该做什么才能成功地评估测试

量角器版本为:带Jasmine2框架的2.1.0版

这是我启动测试的命令:

C:\projects\eucngts\e2e\app>protractor conf.js --baseUrl=http://localhost:56225/euc/
以下是我的相关代码:

// conf.js
exports.config = {
    directConnect: true,
    seleniumAddress: 'http://localhost:4444/wd/hub',
    framework: 'jasmine2',
    specs: [
        './views/account/loginSpec.js'
        ,'./views/inStudents/inStudentsSpec.js'
    ]
}

//Spec File
describe('Testing Students Page', function () {

    var inStudents: InStudents = require('./inStudents.js');
    var defs: Defs = require('../defs.js');
    it('should check cell 2 2 ', function () {
        inStudents.createNewInStudent()
    });
});

//Testing file

class InStudents {

        createNewInStudent() {
            element(by.css('[ng-click="vm.openNewPage()"]'));
            browser.sleep(1000)
            expect(element(by.css('[ng-click="vm.submitButtonOfThatPage()"]')).isPresent()).toBe(true);
        }
    }
module.exports = new InStudents();

与其使用
browser.sleep()
delay,不如使用和显式显示:


帮你自己一个忙,给你的按钮分配一个语义ID,而不是通过你在点击中放置的任何东西来定位它们。没有代码我们帮不了你做了什么。我还是不知道这个按钮的作用。您刚刚更改了函数的名称。非常感谢@alecxe。似乎
browser.wait()
已被
proctrator 2.1.0
弃用,对吗?@asdf\u enel\u hak很乐意提供帮助。不,
browser.wait
来自
webdriverjs
,它肯定在那里()。谢谢,我说错了。我的意思是:
expect(myelement).isPresent()).toBe(true)
不受欢迎。而是
browser.wait(EC.presenceOf(myElement),5000)
将被使用?@asdf_enel_hak hm,我认为这两个选项都是有效的,它们是不同的,但在语法方面是有效的
browser.wait()
基本上会检查条件,直到满足条件或超时。。
// conf.js
exports.config = {
    directConnect: true,
    seleniumAddress: 'http://localhost:4444/wd/hub',
    framework: 'jasmine2',
    specs: [
        './views/account/loginSpec.js'
        ,'./views/inStudents/inStudentsSpec.js'
    ]
}

//Spec File
describe('Testing Students Page', function () {

    var inStudents: InStudents = require('./inStudents.js');
    var defs: Defs = require('../defs.js');
    it('should check cell 2 2 ', function () {
        inStudents.createNewInStudent()
    });
});

//Testing file

class InStudents {

        createNewInStudent() {
            element(by.css('[ng-click="vm.openNewPage()"]'));
            browser.sleep(1000)
            expect(element(by.css('[ng-click="vm.submitButtonOfThatPage()"]')).isPresent()).toBe(true);
        }
    }
module.exports = new InStudents();
var submitButton = element(by.css('[ng-click="vm.submitButtonOfThatPage()"]'));
var EC = protractor.ExpectedConditions;
browser.wait(EC.presenceOf(submitButton), 5000);