生命周期挂钩和/或完成的回调函数未按预期工作

时间:2018-08-29 19:37:47

标签: selenium-webdriver mocha

使用硒和摩卡咖啡,我正在登录同一应用程序的两个环境。当我运行测试时,生命周期挂钩beforeEachafterEach似乎无法正常工作。

我只是想让测试在完成时通过,并且为了使生命周期挂钩正常打开,或者在这种情况下,每次测试结束后退出。

我已经这样设置登录名:

    let webdriver = require('selenium-webdriver'),
firefoxDriver = new webdriver.Builder().forBrowser('firefox').build(),
By = webdriver.By,
until = webdriver.until;

describe("Login to Dev and Staging", function(){

    beforeEach(function(){
        /*  setTimeout(function(){
            done();
          }, 20000);  */
      firefoxDriver = new webdriver.Builder().forBrowser('firefox').build();
    });

   afterEach(function(){
    firefoxDriver.quit();
    });   

    it("Should successfully login to Dev", function(done){
        let userInput = firefoxDriver.findElement(webdriver.By.id('loginPage:CommunitiesTemplate:loginForm:inputEmail')),
        passwordInput = firefoxDriver.findElement(webdriver.By.id('loginPage:CommunitiesTemplate:loginForm:inputPassword')),
        loginbutton = firefoxDriver.findElement(webdriver.By.id('loginPage:CommunitiesTemplate:loginForm:submit')),
        devUser = '***********',
        devPw = '*****';

        firefoxDriver.get('****************'); 
        userInput.sendKeys(devUser);
        passwordInput.sendKeys(devPw);
        loginbutton.click();     

        firefoxDriver.wait(until.titleIs('Guidecenter 2.0', done()));        
    });


    it("Should successfully login to Staging", function(done){
        let userInput = firefoxDriver.findElement(webdriver.By.id('loginPage:CommunitiesTemplate:loginForm:inputEmail')),
        passwordInput = firefoxDriver.findElement(webdriver.By.id('loginPage:CommunitiesTemplate:loginForm:inputPassword')),
        loginbutton = firefoxDriver.findElement(webdriver.By.id('loginPage:CommunitiesTemplate:loginForm:submit')),
        stagingUser = '*********',
        stagingPw = '**********';

        firefoxDriver.get('************');
        userInput.sendKeys(stagingUser);
        passwordInput.sendKeys(stagingPw);
        loginbutton.click();

        firefoxDriver.wait(until.titleIs('Guidecenter 2.0', done()));
    });  



});

在每次测试产生后退出呼叫:

  

UnhandledPromiseRejectionWarning:SessionNotCreatedError:试图在不建立连接的情况下运行命令

看着浏览器打开并执行命令,我可以告诉每个浏览器实例在登录完成之前关闭,因此在调用done()之前关闭。...

我认为我的问题是我打电话给done()的位置,还是我没有以正确的方式来处理问题。

感谢任何帮助-约翰

0 个答案:

没有答案