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

Selenium Node + Sauce Labs Testing: Cannot Finish a Task

我正在使用 Sauce Labs 运行 我的 Selenium 测试脚本,并将 Mocha 作为测试框架。脚本 运行 完美,但问题是,作业没有完成 - 似乎 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 在任务完成后立即退出。

如有任何帮助或想法,我们将不胜感激。

driver.quit() 之前需要一个 return

Instead of calling done(), Mocha accepts a promise as return value. If a test returns a promise, Mocha understands that it’s asynchronous, and waits for the Promise to be resolved before passing to the next test.

这个article很有价值。