Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 量角器-手动引导捆绑角度应用程序-量角器绑定到角度同步设置_Angularjs_Protractor - Fatal编程技术网

Angularjs 量角器-手动引导捆绑角度应用程序-量角器绑定到角度同步设置

Angularjs 量角器-手动引导捆绑角度应用程序-量角器绑定到角度同步设置,angularjs,protractor,Angularjs,Protractor,我们有一个场景,其中登录页面是一个非角度页面,它在成功登录后打开角度应用程序。登录后,我们的应用程序在文档就绪状态下进行手动引导,并将应用程序与文档元素关联起来 我们的测试场景是,登录(doLogin)->做一些事务(doTransaction) 我们正在使用“OnPrepare”方法中设置为true的ignoreSynchronization。接下来,在测试中,我们执行了登录操作并同步到登录后页面中的一个元素(预期条件) 在此期间,必须初始化/正在初始化Angular。但是量角器应该忽略这个过

我们有一个场景,其中登录页面是一个非角度页面,它在成功登录后打开角度应用程序。登录后,我们的应用程序在文档就绪状态下进行手动引导,并将应用程序与文档元素关联起来

我们的测试场景是,登录(doLogin)->做一些事务(doTransaction)

  • 我们正在使用“OnPrepare”方法中设置为true的ignoreSynchronization。接下来,在测试中,我们执行了登录操作并同步到登录后页面中的一个元素(预期条件)

  • 在此期间,必须初始化/正在初始化Angular。但是量角器应该忽略这个过程,因为我设置了忽略标志

  • 下一步,我将单击TransactionElement。从这里开始,所有物体都应该是有角度的,我们希望量角器与之相结合。因此,我们已将ignoreSynchronization设置为false

  • 在整个场景中,在步骤1之后,我立即收到一个错误,说明在等待量角器与页面同步时出现“错误:”父(体)没有注入器。这可能意味着它不在ng应用程序中

    问题是,ignoreSynchronization在那个时候仍然是正确的。当我将其设置为忽略时,为什么量角器报告它正在尝试同步?欢迎对此有任何想法

    下面是一段代码片段

    准备方法

    onPrepare: function(){
          console.log("**In On Prepare Method**");
          global.sel = browser.driver;
          browser.ignoreSynchronization = true;
          }
    
    AngularPage.prototype.doLogin = function(){
                                       this.login.sendKeys(this.user);       
                                       this.password.sendKeys(this.passwd);  
                                       this.goButton.click();
                             browser.wait(this.EC.elementToBeClickable(this.TransactionElement));                                  
                                    };
    
    AngularPage.prototype.doTransaction = function(){
                                       browser.wait(this.EC.elementToBeClickable(this.TransactionElement)).then(this.TransactionElement.click());    
                                       browser.ignoreSynchronization = false; 
                                    };  
    

    事务元素的定位器-Element(by.xpath('/*[@id=“global side bar”]/ul[1]/li[2]/a/span[1]”);

    如果测试登录页面不是很重要,为什么不尝试将登录步骤也放在onPrepare中。谢谢你的建议。我会尝试一下,让你不断更新。