2014-11-14 69 views
0

我正在为我的角度应用编写e2e测试。登录是通过iframe包含的外部资源。对于我的一些测试,我需要我的用户登录,所以我试图定位iframe输入来添加凭据和登录。喜欢的东西:针对角度应用内的非角度iframe元素

ptor = protractor.getInstance(); 
ptor.switchTo().frame('loginIframe'); 
element(by.id('username')).sendKeys(username); 

在这个阶段,我得到一个错误:

Error: Error while waiting for Protractor to sync with the page: {"message":"angular is not defined".... 

我想这是因为iframe是不是一个角功能量角器翻倒。有没有人见过这样的行为?我认为也许可以使用webdriver来定位元素而不是量角器。

任何想法非常赞赏

Ç

回答

1

当你切换到非角iframe中,使用

browser.driver.findElement(by.id('username')) 

代替

element(by.id('username')) 

欲了解更多详情请访问:https://github.com/sakshisingla/Protractor-Non-Angular-Tests/wiki/Creating-test-scripts-using-Protractor-for-non-angular-application

让我知道这是否有帮助!

+0

感谢您的回复。我最终不得不创建一个量角器实例并使用它的.switchTo().frame()方法 – Cathal

+0

太棒了!如果问题完全解答,那么您可以标记答案并关闭帖子。如果还有问题,请在这里发帖,以便帖子完全回答! –