2015-08-27 30 views
1

我已经执行测试E2E使用角错误在量角器(NoSuchElementError:没有使用定位器找到的元素:by.model(“用户名”))

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: No element found using locator: by.model("username")

如何解决这个问题。

回答

2

您确定您的元素存在于DOM中。如果是的话,那么你应该等待角落定下来,然后尝试检查元素。如果元素仍在加载,则量角器将引发错误。包括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'); 
}); 

希望这可以帮助。

+0

不错的@Girish – DavidC

3

你应该建立你的量角器测试不是基于假设,而是借助诸如element explorer和elementor之类的工具。

然后,您可以声称存在问题。

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

链接到元素或回购:https://github.com/andresdominguez/elementor

相关问题