javascript - webdriverIO - 未处理的 promise 拒绝 : NoSuchSessionError: invalid session id

标签 javascript node.js jasmine webdriver-io

我正在学习使用 Jasmine 和 WebdriverIO 进行 UI 测试。我将它与 NodeJS 一起使用。 我有下一个测试代码:

const projectsPage = require('../../lib/pages/projects.page');
const by = require('selenium-webdriver').By;

describe('Projects page', () => {
  it('Search google', async() => {
    await projectsPage.navigateTo();
    driver.getTitle().then(function(title) {
      expect(title).toBe('Google');
    });
    driver.findElement(by.name('q')).sendKeys('test');
  })
});

当我运行它时,我收到错误:

Unhandled promise rejection: NoSuchSessionError: invalid session id
      (Driver info: chromedriver=2.46.628411 (3324f4c8be9ff2f70a05a30ebc72ffb013e1a71e),platform=Mac OS X 10.14.5 x86_64)

但下面的代码执行成功:

describe('Projects page', () => {
  it('Search google', async() => {
    await projectsPage.navigateTo();
    driver.getTitle().then(function(title) {
      expect(title).toBe('Google');
    });
    driver.findElement(by.name('q'))
  })
});

我哪里错了?

最佳答案

由于 findElementsendKeys 也返回 promises,因此您还必须等待这些方法:

await driver.findElement(by.name('q')).then(element => element.sendKeys('test'));

关于javascript - webdriverIO - 未处理的 promise 拒绝 : NoSuchSessionError: invalid session id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56294850/

相关文章:

javascript - 未选中复选框时如何在javascript中执行弹出操作?

javascript - 将 Ajax 帖子与 MVC Controller 和重定向相结合

node.js - 使用不同的变量多次启动 docker-compose 服务

node.js - HTTP POST Elasticsearch 事件流批量

javascript - Jenkins 与 Jest 的集成

javascript - 如何修复单元测试 Angular 11 中的错误 "is not a function"

javascript - Jasmine - 方法未被调用

javascript - 扩展 sap.m.List 给我错误 : . ..无法加载 'sap/m/items.js'

javascript - 如何修复错误 : listen EADDRINUSE while using NodeJS?

javascript - 尝试使用 Nodejs 从 HTML 响应中提取信息