【问题标题】:Error while waiting for Protractor to sync with the page: in Protractor IE11 execution等待 Protractor 与页面同步时出错:在 Protractor IE11 执行中
【发布时间】:2016-01-12 13:13:47
【问题描述】:

我在 IE11 中遇到错误

等待量角器与页面同步时出错:“根元素(主体)没有注入器。这可能意味着它不在 ng-app 内。

当我执行量角器脚本时。我设置了 framework: jasmine2 但它没有帮助。但是在 Chrome 和 Firefox 中同样可以正常工作。

以下是我的代码:

// The address of a running selenium server.
  seleniumAddress: 'http://localhost:4444/wd/hub',
  //config.seleniumAddress = 'http://127.0.0.1:4444/wd/hub';
  maxSessions: 1,

 capabilities: 
  {
  'browserName': 'internet explorer'
  },
      framework: 'jasmine',
              specs: ['TC_Sprint2_Case1.js'],

onPrepare: function() {   
      beforeEach(function() {
        browser.driver.manage().window().setSize(1280, 1024);
    });  

      jasmine.getEnv().addReporter(new HtmlReporter({
         baseDirectory: 'D:/Manoj/TestReport3/',

         docTitle: 'Test Case Execution Details',
         docName: 'BYTestReport.html',
//Meta builder      
  metaDataBuilder: function(spec, descriptions, results, capabilities){
            var metaData = {
                description: descriptions.join('|'),
                 passed: results.passed(),
                 os: 'Windows 7',               
                 browser: {
                  name: capabilities.caps_.browserName
                  , version: capabilities.caps_.version
                }
              };
            if(results.items_.length > 0) {
              var result = results.items_[0];
             metaData.message = result.message;                    
               metaData.trace = result.trace.stack;                         
            }           
return metaData;
}  // Meta Builder ends 
}));
   }, 

【问题讨论】:

  • 您是在 Angular 页面还是非 Angular 页面上进行测试?
  • @GirishSortur 我正在测试角度页面。但是当我们首先在 Internet Explorer 中执行时,它会启动“localhost:28813”然后它会导航到我的角度页面。所以这里的问题是量角器开始执行在非角度页面本身上,它不会等到到达角度页面。
  • 如果browser.ignoreSynchronization = false 在您的 conf.js onPrepare() 函数或 beforeAll() 函数中是一个角度页面,您能否尝试设置它,看看它是否有效?此外,如果您在任何特定元素处遇到错误,请等到使用 browser.waitForAngular().then(function(){//Check for element}); 加载 angular
  • 我试过 onPrepare: function() { browser.driver.manage().window().maximize(); browser.ignoreSynchronization = false; }beforeEach(function() { browser.get('login.newrelic.com/'); browser.ignoreSynchronization = false; }); 但在这两种情况下我都会收到错误为“错误而等待量角器与页面同步:“根元素(主体)没有注入器。这可能意味着它不在 ng-app 中。”

标签: angularjs node.js automation jasmine protractor


【解决方案1】:

我们可以用browser.driver.get('https://google.co.in');代替browser.get('https://google.co.in');

之前我使用browser.get(URL)。它导致了同步问题。当我使用browser.driver.get(URL)时。它解决了问题。

【讨论】:

    【解决方案2】:

    在您的配置中,尝试将 nativeEvents 设置为 false:

    capabilities:{
        browserName: 'internet explorer'
        nativeEvents:false
    },
    

    IE 有时会在启动时挂起,这似乎为我解决了这个问题。话虽这么说,还有其他事情可能导致 IE 无法绑定。

    【讨论】:

    • 你的 ng-app 在什么标签上?
    • html class="no-js ng-scope" ng-app="busApp" - 这是应用程序中使用的标签
    • 听起来你需要尝试 browser.waitForAngular 如果你还没有。
    • 尝试如下。但存在错误。 ** it('Testcase-TC_BY_08-question_Alternate flow', function() { browser.waitForAngular(); page_validation(); Login(); Questionpage_validation(); }); **
    • 我相信正确的格式是:browser.waitForAngular().then(function(){page_validation(); Login(); Questionpage_validation();});你必须记住,Protractor 中的大多数事情都会返回必须正确处理的承诺。
    猜你喜欢
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-29
    相关资源
    最近更新 更多