使用硒和摩卡咖啡,我正在登录同一应用程序的两个环境。当我运行测试时,生命周期挂钩beforeEach
和afterEach
似乎无法正常工作。
我只是想让测试在完成时通过,并且为了使生命周期挂钩正常打开,或者在这种情况下,每次测试结束后退出。
我已经这样设置登录名:
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()的位置,还是我没有以正确的方式来处理问题。
感谢任何帮助-约翰