在Signle测试中处理多个浏览器实例时如何设置ignoreSynchronization

时间:2019-11-16 08:19:49

标签: javascript angularjs protractor cucumberjs

我正在尝试在一个测试中处理多个浏览器实例。.一旦在一个浏览器实例中完成了操作..我的脚本将打开新的浏览器实例,并且为了忽略同步,我编写了一个函数,但它不起作用甚至struct sigaction action = { .sa_flags = 0, .sa_handler = intHandler }; sigaction(SIGINT, &action, NULL); int ch; while (1) { ch = fgetc(stdin); if (ch == EOF) { if (errno == EINTR) { if (keepRunning) { continue; } break; } break; } } 也不起作用。有人可以帮我吗?

规范文件

browserInstance.ignoreSynchronization=true

忽略同步的常用功能


    this.Then(/^User tried to open in new browser instance$/,async function(){
        browser2=await utility.openNewBrowser(browser);
        //this common function is not working
        //utility.ignoreSync(browser2);
        browser2.ignoreSynchronization=true;
        browser2.get("https://facebook.com");
        page2=new facebook(browser2);
        console.log(await browser2.getTitle()+" title");
        browser2.sleep(5000);
    });

错误日志

var utility=function(){
    this.openNewBrowser=function(browserInstance){
        return browserInstance.forkNewDriverInstance();
    }

    this.ignoreSync=function(browserInstance){
        browserInstance.ignoreSynchroniation=true;
    }
}

module.exports=new utility();

1 个答案:

答案 0 :(得分:0)

我的问题已通过仅两次调用waitForAngularEnabled得以解决

第一次应该是在创建浏览器时 第二次是在加载网址之后

代码

 this.ignoreSync=async function(url){
          console.log("entered in to ignore");
          browserInit.waitForAngularEnabled(false);
          await browserInit.get(url);
          browserInit.waitForAngularEnabled(false);
          console.log("came out from ignore")
      }

这是我的解决方案,如果有人有更好的解决方案,请随时发布。