当前位置: 首页 > 知识库问答 >
问题:

量角器:非角度应用程序中的多个浏览器实例:ignoreSynchronization不工作

田德馨
2023-03-14
Failed: Error while waiting for Protractor to sync with the page: "window.angular is undefined.  This could be either beca use this is a

conf.js

exports.config = {
  framework: 'jasmine',
  specs: ['test.js','chat_featuresx.js'],
  multiCapabilities: [{
    browserName: 'chrome'
  }],
  directConnect: 'true'
}

test.js

describe('First interaction customer-agent', () => {

    beforeEach(function() {
        global.agent = browser;
        global.customer = browser.forkNewDriverInstance();
        agent.ignoreSynchronization = true;
        customer.ignoreSynchronization = true;
        agent.get('http://engager-stage.brandembassy.com/');
        customer.get('https://vps-web-utils.awsbrandembassy.com/livechat-window-gherkin/');
        agent.driver.manage().window().maximize();
        customer.driver.manage().window().maximize();
    });

    it('should be seen offline when agent is offline and viceversa', () => {      
        // check that default status is minimized 
        browser.sleep(2000);
        expect(customer.isElementPresent(by.css('.be-chat.be-chat--minimize'))).toBe(true);       
    });
});

共有1个答案

唐增
2023-03-14

在检查了代码之后。我看到的几件事是:
1。如果您将一个变量声明为global,我认为您需要在使用它们时包含它。
例如global.agent.ignoresynchronization
2。isElementPresent似乎用于有角度的页面。
在您的情况下,我将其替换为isPresent

请参阅下面的示例代码:

describe('First interaction customer-agent', () => {
    var agent = browser;
    var customer = browser.forkNewDriverInstance();

    beforeEach(function() {
        agent.ignoreSynchronization = true;
        customer.ignoreSynchronization = true;
        agent.get('http://engager-stage.brandembassy.com/');
        customer.get('https://vps-web-utils.awsbrandembassy.com/livechat-window-gherkin/');
        agent.driver.manage().window().maximize();
        customer.driver.manage().window().maximize();
    });

    it('should be seen offline when agent is offline and viceversa', () => {      
        // check that default status is minimized 
        browser.sleep(2000);
        var elm = customer.element(by.css('[class="be-chat-wrap be-chat-wrap--minimize"]'));
        expect(elm.isPresent()).toBe(true);       
    });
});

注意:我没有使用全局,因为我们可以在it函数外声明变量。

 类似资料:
  • 我试图在浏览器堆栈上运行多个浏览器上的E2E测试,我参考了在量角器中的多个/并行浏览器上的E2E测试?和Internet Explorer Selenium量角器e2e测试 但每次我试着运行测试时都会犯错- 谁能告诉我什么是我做错了这里,而且我们使用gulp ti运行规范,但我的问题是它是说,甚至没有超出认证。

  • 问题内容: 问题: 在我们的一项测试中,我们具有“长按”/“单击并按住”功能,可以使用以下方法解决: 我们希望通过包含动作链的一部分来理想地解决这一问题: 显然,这是行不通的,因为没有“睡眠”操作。 另一个实际的例子可能是“类人打字”。例如: 注意,这些只是示例,这个问题是通用的。 问题: 是否可以扩展动作序列并引入自定义动作? 问题答案: 是的,您可以扩展操作框架。 但是,严格来说,得到的是:

  • 问题内容: 我找不到有关如何进行设置的任何信息,但这似乎是一个非常基本的概念,所以我敢肯定有一个答案。 我知道如何通过在配置中设置对象的属性来在不同的浏览器上运行量角器。而且效果很好。我可以将其设置为or 或我需要的任何值,并且它可以按预期运行。但是,对多个浏览器运行单个测试套件的唯一方法(据我所知)是创建单独的配置文件,每个配置文件具有不同的配置文件,然后使用各自的配置运行每个浏览器。这行得通,

  • 我想用量角器和BrowserStack运行测试。我跟踪了这个帖子,我背后的一个代理。我已安装browserstack local,并使用以下命令运行它: 一切似乎都起作用了,因为我有这样的信息: 谢谢

  • 我在用量角器做测试。99%的情况下,不需要实际查看浏览器,测试需要很长时间,而我们感兴趣的只是最终结果。有没有一种方法可以隐藏为测试而打开的浏览器(例如在后台运行)?

  • 问题内容: 运行Angular Protractor测试后是否可以将测试浏览器窗口保持打开状态?我在FireFox中失败了一个艰难的测试,访问网页状态以查看发生了什么非常有用。 问题答案: 您可以使用量角器调试/暂停功能来暂停e2e运行,这最终将使浏览器保持打开状态:此处有更多信息 为此,请在失败的量角器测试上添加此行 还有一个非常有用的工具,称为elementor,您稍后可能需要看看。