Selenium Node + Sauce Labs测试:无法完成任务

时间:2017-07-26 05:56:29

标签: node.js selenium mocha saucelabs

我正在使用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('test_user@test.com');
    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 labs仪表板中,任务只是一直等到超时。

顺便说一句,我使用本地chromdriver测试了上述代码,一切正常 - driver在任务完成后立即退出。

感谢任何帮助或想法。

1 个答案:

答案 0 :(得分:1)

return之前需要driver.quit()

  

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

article很有价值。