<tfoot id='lg6cF'></tfoot>
    <bdo id='lg6cF'></bdo><ul id='lg6cF'></ul>
    <legend id='lg6cF'><style id='lg6cF'><dir id='lg6cF'><q id='lg6cF'></q></dir></style></legend>

    1. <i id='lg6cF'><tr id='lg6cF'><dt id='lg6cF'><q id='lg6cF'><span id='lg6cF'><b id='lg6cF'><form id='lg6cF'><ins id='lg6cF'></ins><ul id='lg6cF'></ul><sub id='lg6cF'></sub></form><legend id='lg6cF'></legend><bdo id='lg6cF'><pre id='lg6cF'><center id='lg6cF'></center></pre></bdo></b><th id='lg6cF'></th></span></q></dt></tr></i><div id='lg6cF'><tfoot id='lg6cF'></tfoot><dl id='lg6cF'><fieldset id='lg6cF'></fieldset></dl></div>

      <small id='lg6cF'></small><noframes id='lg6cF'>

    2. 量角器 browser.wait 不等待

      Protractor browser.wait doesn#39;t wait(量角器 browser.wait 不等待)

            • <i id='OgGLU'><tr id='OgGLU'><dt id='OgGLU'><q id='OgGLU'><span id='OgGLU'><b id='OgGLU'><form id='OgGLU'><ins id='OgGLU'></ins><ul id='OgGLU'></ul><sub id='OgGLU'></sub></form><legend id='OgGLU'></legend><bdo id='OgGLU'><pre id='OgGLU'><center id='OgGLU'></center></pre></bdo></b><th id='OgGLU'></th></span></q></dt></tr></i><div id='OgGLU'><tfoot id='OgGLU'></tfoot><dl id='OgGLU'><fieldset id='OgGLU'></fieldset></dl></div>
            • <small id='OgGLU'></small><noframes id='OgGLU'>

            • <legend id='OgGLU'><style id='OgGLU'><dir id='OgGLU'><q id='OgGLU'></q></dir></style></legend>
              <tfoot id='OgGLU'></tfoot>
                <bdo id='OgGLU'></bdo><ul id='OgGLU'></ul>
                  <tbody id='OgGLU'></tbody>
              • 本文介绍了量角器 browser.wait 不等待的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                问题描述

                我假设 browser.wait 应该是一个阻塞调用,但它没有按我预期的那样工作.这是我的示例:

                I am assuming that browser.wait should be a blocking call, but it is not working as I expected. Here is my sample:

                describe("browser.wait", function() {
                    beforeEach(function() {
                        browser.wait(function() {
                            console.log('1 - BeforeEach WAIT');
                            return true;
                        });
                    console.log('2 - BeforeEach after wait');
                });
                
                afterEach(function() {
                    browser.wait(function() {
                        console.log('4 - afterEach WAIT');
                        return true;
                    });
                    console.log('5 - afterEach after wait');
                });
                
                it('should probably actually wait.', function() {
                    console.log('3 - IT statement');
                    expect(1).toBe(1);      
                });
                

                现在,因为我假设 browser.wait 实际上是阻塞的,所以我认为我的 console.log 调用会按顺序运行;1,2,3,4,5;

                Now, because I assumed browser.wait was actually blocking, I thought that my console.log calls would be run in order; 1,2,3,4,5;

                我得到的实际输出是:

                2 - BeforeEach after wait  
                1 - BeforeEach WAIT  
                3 - IT statement  
                5 - afterEach after wait  
                4 - afterEach WAIT  
                

                如何让 browser.wait 等待?还是我完全使用了错误的功能?我需要阻止一些事情,直到我的浏览器到达下一次调用所需的位置.

                How can I get browser.wait to wait? Or am I using the wrong function completely? I need things to block until my browser gets to where it needs to be for the next call.

                推荐答案

                都是关于承诺的(实际上每个量角器问题都是关于承诺的).

                It is all about promises (actually every protractor question is about promises).

                browser.wait() 不是阻塞调用,它调度一个命令 等待一个条件:

                安排一个命令等待一个条件成立,如定义一些用户提供的功能.如果在评估过程中出现任何错误等等,他们将被允许传播.如果有条件返回一个 webdriver.promise.Promise,轮询循环将等待它被解析并使用解析的值来评估是否条件已经满足.承诺的解决时间是考虑等待是否超时.

                Schedules a command to wait for a condition to hold, as defined by some user supplied function. If any errors occur while evaluating the wait, they will be allowed to propagate. In the event a condition returns a webdriver.promise.Promise, the polling loop will wait for it to be resolved and use the resolved value for evaluating whether the condition has been satisfied. The resolution time for a promise is factored into whether a wait has timed out.

                它不会立即调用你传入的函数,它会安排一个命令并等待 promise 被解析(如果里面的函数返回一个 promise).

                It would not call the function you are passing in immediately, it would schedule a command and wait for promise to be resolved (if the function inside returns a promise).

                在这种情况下,您可以使用 then() 来获得正确的顺序:

                You can use then() to have a correct order in this case:

                beforeEach(function() {
                    browser.wait(function() {
                        console.log('1 - BeforeEach WAIT');
                        return true;
                    }).then(function () {
                        console.log('2 - BeforeEach after wait');
                    });
                });
                

                在此处查看用例:

                • 如何等待条件?

                这篇关于量角器 browser.wait 不等待的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                相关文档推荐

                What are valid deviceNames for Chrome emulation testing with Protractor?(使用 Protractor 进行 Chrome 模拟测试的有效设备名称是什么?)
                Protractor Check if Element Does Not Exist(量角器检查元素是否不存在)
                Protractor e2e Tests Login Redirection(Protractor e2e 测试登录重定向)
                Explain about async/ await in Protractor(解释 Protractor 中的 async/await)
                How to use Protractor with Angular 2?(如何在 Angular 2 中使用量角器?)
                how test separate environmental name with protractor conf js?(如何使用量角器 conf js 测试单独的环境名称?)

                <legend id='bvvCS'><style id='bvvCS'><dir id='bvvCS'><q id='bvvCS'></q></dir></style></legend>
                  <tbody id='bvvCS'></tbody>

                      <bdo id='bvvCS'></bdo><ul id='bvvCS'></ul>
                      <tfoot id='bvvCS'></tfoot>
                          <i id='bvvCS'><tr id='bvvCS'><dt id='bvvCS'><q id='bvvCS'><span id='bvvCS'><b id='bvvCS'><form id='bvvCS'><ins id='bvvCS'></ins><ul id='bvvCS'></ul><sub id='bvvCS'></sub></form><legend id='bvvCS'></legend><bdo id='bvvCS'><pre id='bvvCS'><center id='bvvCS'></center></pre></bdo></b><th id='bvvCS'></th></span></q></dt></tr></i><div id='bvvCS'><tfoot id='bvvCS'></tfoot><dl id='bvvCS'><fieldset id='bvvCS'></fieldset></dl></div>

                          <small id='bvvCS'></small><noframes id='bvvCS'>