У меня есть рабочая среда webdriverio, которая выполняется без проблем.Но недавно я включил вызов API REST между ними, и с тех пор все команды wdio, следующие за вызовом API, терпят неудачу с сообщением об ошибке «не является функцией»
Ответ API успешен.Без API те же методы wdio выполняются успешно.
- Я пытался сравнить сеанс браузера до и после webdriverio, и они оба одинаковы
- Я пытался переместить вызов API в отдельноефайл.Но после выполнения вызова API, когда вызывается следующий шаг с тем же сообщением об ошибке
- , я пытался сохранить и повторно использовать значение браузера, но безрезультатно.
- Я пытался открытьокно, запустите вызов API, закройте окно: но закрыть окно совсем не работает
- Я попытался переключить окно, используя URL и заголовок, но не помогло вообще.
Что-то странное происходит, когда $ функциональность теряет след экземпляра wdio, если между ними происходит вызов API.Я изо всех сил пытаюсь исправить это, и, не имея API-вызова между ними, не могу создать мою среду автоматизации тестирования.Следовательно, вклад в это будет высоко ценится.
Пример кода, который я использовал, приведен ниже для вашей справки
import { expect } from 'chai';
import apiCheck from 'src/ext/api.check';
import lPage from 'src/pages/login.page';
import sPage from 'src/pages/summary.page';
let superTest = require('supertest');
const request = superTest('http://localhost:3000/api/');
const apiEndPoint = 'auth/login';
const headerOrigin = 'http://localhost:3001';
const headerCookie = '__DEEI_SESSION__=abcd1234';
describe('fund part ', () => {
beforeEach(() => {
browser.url('login?');
});
it('Get API Response in seperate ts file and run through wdio steps', async () => {
let accountNo = lPage.getLoginAccountType('Standard');
try {
let res = await apiCheck.getApiLoginData(accountNo);
console.log(res);
} catch (error) {
console.log(error);
}
lPage.enterLoginData(accountNo, '2dsXS£');
});
it('Get API Response in same it block and run through wdio steps', async () => {
let accountNo = lPage.getLoginAccountType('Standard');
let requestBody = `{"username": \"${accountNo}\", "password": "2dsXS£$"}`;
let response = await request
.post(apiEndPoint)
.send(requestBody)
.set('Origin', headerOrigin)
.set('Content-Type', 'application/json')
.set('Cookie', headerCookie)
.expect(200);
lPage.enterLoginData(accountNo, password);
});
});