2017-07-26 148 views
1

我正在使用Sauce Labs以Mocha作为测试框架来运行我的Selenium测试脚本。脚本运行完美,但问题是,作业没有完成 - 似乎driver.quit()被忽略,并在90秒后提示超时错误。硒节点+酱料实验室测试:无法完成任务

下面的代码:

const { driver } = require('./config'); 
const { By, until } = require('selenium-webdriver'); 

describe('Integration test', function() { 
    this.timeout(20000); 

    it('can login as test user', function() { 
    driver.get('https://www.example.com'); 
    driver.wait(until.elementIsNotVisible(driver.findElement(By.id('vale'))), 8000, 'Vale cannot fade'); 
    driver.findElement(By.name('email')).sendKeys('[email protected]'); 
    driver.findElement(By.name('password')).sendKeys('password'); 
    return driver.findElement(By.id('authFormSubmitButton')).click(); 
    }); 

    after(() => { 
    console.log('Quiting driver'); 
    // This does not work! 
    driver.quit(); 
    }); 
}); 

在配置一个driver建成并连接到远程服务器。

运行此操作时,在控制台中,我可以看到测试通过和Quiting driver消息,但在Sauce实验室仪表板中,任务只是等到超时。

顺便说一句我测试了上面的代码与本地chromdriver和一切工作正常 - driver任务后立即退出。

任何帮助或想法表示赞赏。

回答

1

driver.quit()之前需要return

而不是调用done(),Mocha接受承诺作为返回值。如果 测试返回承诺,则Mocha明白它是异步的, 并在传递到下一个 测试之前等待Promise解决。

article是有价值的。

相关问题