我使用了以下但是我得到这个驱动程序实例没有有效的会话ID(你调用了WebDriver.quit()吗?)并且可能不再使用了。有人可以帮忙吗。
Sample.js文件,其中包含以下代码:
describe('angularjs homepage', function() {
beforeAll(function(){
browser.get('https://xxxx/');
console.log('calling before all');
});
afterAll(function(done){
console.log('calling after all');
browser.quit();
process.nextTick(done);
});
另一个也具有相同代码的文件:
describe('angularjs homepage', function() {
beforeAll(function(){
browser.get('https://xxxx/');
console.log('calling before all');
});
afterAll(function(done){
console.log('calling after all');
browser.quit();
process.nextTick(done);
});
现在我想使用beforeAll和AfterAll函数,浏览器应该在每个js文件执行中打开和关闭。当我遵循这种方法时,我得到错误,因为此驱动程序实例没有有效的会话ID(您是否调用了WebDriver.quit()?)并且可能不再使用。
答案 0 :(得分:1)
很难准确理解您的要求,因为您只发布了一个describe
,但在评论中我看到您说您希望浏览器在每个describe
之前打开。假设您已嵌套describe
块,则可以使用beforeEach()
和afterEach()
来执行此操作。
describe('some test', () => {
beforeAll(() => {
//some setup code
}
beforeEach(() => {
browser.get('https://xxxx/');
}
afterEach(() => {
browser.restart();
}
afterAll(() => {
//some tear down code
}
describe('something', () => {
it('should test something', () => {
//test code
}
}
describe('another thing', () => {
it('should test another thing', () => {
//test code
}
}
}
在上面的例子中,执行顺序为:
describe
beforeAll
beforeEach (open browser)
describe - something
it - should test something
afterEach (close browser)
beforeEach (open browser)
describe - another thing
it - should test another thing
afterEach (close browser)
afterAll
还有一个量角器配置选项restartBrowserBetweenTests,它会在每次测试之前重新启动浏览器,但我不认为这是你要求的。
答案 1 :(得分:0)
我认为您需要: 在每个和之前 afterEach
它们将在“describe”中的每个“it”块之前执行。