Javascript 量角器中出错(NoSuchElementError:未使用定位器找到元素:by.model(";username";)

Javascript 量角器中出错(NoSuchElementError:未使用定位器找到元素:by.model(";username";),javascript,angularjs,automation,jasmine,protractor,Javascript,Angularjs,Automation,Jasmine,Protractor,我已经使用angular对以下代码执行了e2e测试 it('should successfully login and create a session using valid credentials', function() { browser.get('http://www.angularjs.org'); browser.driver.manage().deleteAllCookies(); var username = eleme

我已经使用angular对以下代码执行了e2e测试

it('should successfully login and create a session using valid credentials', function() {
        browser.get('http://www.angularjs.org');
        browser.driver.manage().deleteAllCookies();     
        var username = element(by.model('username'));
        var password = element(by.model('password'));   
        username.sendKeys('admin');
        password.sendKeys('password');

    });
但我犯了这样的错误

NoSuchElementError:使用locator:by.model(“用户名”)未找到任何元素


如何解决此问题。

是否确定DOM中存在元素。如果是,则应等待angular稳定下来,然后尝试检查元素。如果元素仍在加载,则量角器将抛出错误。包括
ignoreSynchronization
,以确保量角器等待角度调整。您可以提供元素可见的显式等待时间,或等待它加载-

it('should successfully login and create a session using valid credentials', function() {
        browser.driver.manage().deleteAllCookies();
        browser.ignoreSynchronization = false;
        browser.get('http://www.angularjs.org');
        var username = element(by.model('username'));
        var password = element(by.model('password'));
        browser.sleep(2000);
        browser.wait(protractor.ExpectedConditions.visibilityOf(username), 20000);   
        username.sendKeys('admin');
        password.sendKeys('password');
});

希望这能有所帮助。

您应该在element explorer和elementor等工具的帮助下构建量角器测试,而不是基于假设

然后,你可以说,有一个问题

没有这些工具,编写量角器测试变得非常缓慢

链接至elementor回购: