How to pause or wait in a mocha test case - setTimeout does not work

I created a test case selenium-mochathat Google will open, enter the text, and then click the search button. But I need to search 60 seconds after entering the text to search.

Test code snippet:

var assert = require('assert'),
    test = require('selenium-webdriver/testing'),
    webdriver = require('selenium-webdriver');
var urladd ='http://www.google.com/';

function clickLink(link){
    link.click();
    return link;
}

var testSimple=function(searchContent){
    var browser = new webdriver.Builder().withCapabilities(webdriver.Capabilities.chrome()).build();

    test.describe('\n\nGoogle Search\n', function() {
        this.timeout(60000);
        test.it('Enter element to be searched', function(done) {
            browser.get(urladd);
            browser.findElement(webdriver.By.name('q')).sendKeys(searchContent);
            browser.getTitle().then(function(title) {
                assert.equal(title,'Google');
            })
        });

        test.it('Click search button', function(done) {
            setTimeout(function(){
                browser.findElement(webdriver.By.name('btnG')).then(clickLink).then(function(){
                    browser.getTitle().then(function(title) {
                        assert.equal(title,'selenium mocha test cases - Google Search');
                    });
                });
            },30000);
        });
    });
}

testSimple('selenium mocha test cases');

I used setTimeoutto pause for 60 seconds, but mocha just passes the test case without executing the code for the timeout.

Console output:

Google Search

   Enter element to be searched (7771ms)
   Click search button

2 passing (8s)

Can anyone suggest a better solution for this (or any other APIs that can be used to pause the mocha test)?

+4
source share
1 answer

, :

  1. done , test.it. selenium-webdriver Mocha, , . done .

  2. . . . ( SO , , , .)

, . , :

test.it('Click search button', function() {
    var flow = webdriver.promise.controlFlow();
    flow.execute(
        function () { return webdriver.promise.delayed(30 * 1000); });
    browser.findElement(webdriver.By.name('btnG')).then(clickLink);
    browser.wait(function () {
        return browser.getTitle().then(function (title) {
            return title === 'selenium mocha test cases - Google Search';
        });
    });
});

, . (webdriver.promise.delayed , , .)

browser. - 30 .

, . , , Selenium (, browser.wait ). , .

+1