webdriverIO - Unhandled promise rejection: NoSuchSessionError: invalid session id
webdriverIO - Unhandled promise rejection: NoSuchSessionError: invalid session id
我正在学习 UI 使用 Jasmine 和 WebdriverIO 进行测试。我将它与 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'))
})
});
我哪里错了?
由于 findElement
和 sendKeys
也 return promises,您也必须等待这些方法:
await driver.findElement(by.name('q')).then(element => element.sendKeys('test'));
您的测试在代码真正运行之前结束,您应该等待每个异步语句
const projectsPage = require('../../lib/pages/projects.page');
const by = require('selenium-webdriver').By;
describe('Projects page', () => {
it('Search google', async() => {
await projectsPage.navigateTo();
const title = await driver.getTitle();
expect(title).toBe('Google');
const q = await driver.findElement(by.name('q'));
await q.sendKeys('test');
})
});
我正在学习 UI 使用 Jasmine 和 WebdriverIO 进行测试。我将它与 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'))
})
});
我哪里错了?
由于 findElement
和 sendKeys
也 return promises,您也必须等待这些方法:
await driver.findElement(by.name('q')).then(element => element.sendKeys('test'));
您的测试在代码真正运行之前结束,您应该等待每个异步语句
const projectsPage = require('../../lib/pages/projects.page');
const by = require('selenium-webdriver').By;
describe('Projects page', () => {
it('Search google', async() => {
await projectsPage.navigateTo();
const title = await driver.getTitle();
expect(title).toBe('Google');
const q = await driver.findElement(by.name('q'));
await q.sendKeys('test');
})
});