无法在iframe

时间:2016-05-03 22:44:05

标签: protractor

我正在尝试在facebook中自动化角度应用程序。我能够成功登录到facebook,但每当我尝试导航到iframe中的角度页面时,它会一直带着这个错误消息踢出来" 等待Protractor与页面同步时出错: " window.angular未定义。这可能是因为这是一个非角度页面,或者因为你的测试涉及客户端导航,这会干扰Protractor的自举。"

规范

它('测试',功能(){

    browser.driver.ignoreSynchronization = true;
    browser.driver.get(URL); //navigating to my facebook page
    browser.driver.sleep(500);

    //Login to facebook
    browser.driver.findElement(by.id('email')).sendKeys(email);
    browser.driver.findElement(by.id('pass')).sendKeys(password);
    browser.driver.findElement(by.id('login')).click();
    browser.driver.sleep(500);

    //navigating to angular page withtin iframe
    browser.driver.switchTo().frame(0);
    browser.waitForAngular();
    element(by.model('name')).click();

});

配置

exports.config = {     seleniumAddress:' http://127.0.0.1:4444/wd/hub',     能力:{         ' browserName':' chrome',

},
specs: ['test'],

framework: 'jasmine2',

jasmineNodeOpts: {

    onComplete: null,
     isVerbose: false,
     showColors: true,
    includeStackTrace: true,
   defaultTimeoutInterval: 5000
}

};

量角器版本 - 3.3.0 npm - 2.14.12 节点 - 4.2.4 茉莉花 - 2

日志

  

10:33:46.248 INFO - 正在执行:[切换到框架:0])   10:33:46.292 INFO - 完成:[切换到框架:0]   10:33:46.300 INFO - 执行:[执行异步脚本:try {return(function(rootSelector,callback){     var el = document.querySelector(rootSelector);

     

尝试{   if(window.getAngularTestability){   window.getAngularTestability(EL).whenStable(回调);   返回;   }   if(!window.angular){   抛出新错误(' window.angular未定义。这可能是' +     '因为这是一个非角度的页面,或者因为你的测试涉及' +   '客户端导航,可能会干扰量角器' +   '自举。有关详细信息,请参阅http://git.io/v4gXM');   }   if(angular.getTestability){   angular.getTestability(EL).whenStable(回调);   } else {   if(!angular.element(el).injector()){   抛出新错误('根元素(' + rootSelector +')没有注入器。' +    '这可能意味着它不在ng-app中。');   }    。angular.element致发光(EL).injector()得到(' $浏览器')。      notifyWhenNoOutstandingRequests(回调);    }   } catch(err){   回调(err.message);   }   申请(this,arguments); }

HTML

我们的html代码中包含ng-app和iframe

<iframe id=" " class=" " frameborder="" src=" " style="" name="">
<!DOCTYPE html>
<html class=" " lang="" ng-app="appname" xmlns=" ">
<head>
<body class=" ">
</html>
</iframe>

任何帮助将非常感谢人

1 个答案:

答案 0 :(得分:0)

你的角色应用是否在iframe?。

切换到defaultContent,然后尝试切换到Iframe。

browser.switchTo()。defaultContent(); 然后

<强> browser.driver.switchTo()帧(0);

量角器无法从错误中识别您的角度应用程序。