- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个可以正常运行的 webdriverio 框架,可以毫无问题地执行。但最近我在两者之间加入了一个 REST api 调用,从那时起,api 调用之后的任何 wdio 命令都失败了,并显示错误消息“不是函数”
api响应成功。如果没有 api,相同的 wdio 方法会成功执行。
如果中间有 api 调用,$ functionality 会丢失 wdio 实例的跟踪,这会发生一些奇怪的事情。我正在努力解决这个问题,并且中间没有 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);
});
});
最佳答案
尝试使用 sync-request 而不是 super 测试.这将使 Rest 请求在测试环境中同步使用。
const request = require('sync-request');
it('Get API Response in same it block and run through wdio steps', () => {
let accountNo = lPage.getLoginAccountType('Standard');
let requestBody = `{"username": \"${accountNo}\", "password": "2dsXS£$"}`;
let response = request(
'POST',
'_SOME_POST_END_POINT',
{
headers: { _SOME_HEADER_IF_NEEDED_},
json: {_JSON_FOR_POST}
}
);
lPage.enterLoginData(accountNo, password);
});
关于typescript - webdriverio 5.7.5 获取错误 $(...).setValue 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55288759/
1、介绍 今天给大家推荐一款基于Node.js编写且号称下一代浏览器和移动自动化测试框架:WebdriverIO 简单来讲:WebdriverIO 是一个开源的自动化测试框架,它允许测试人员使用
我想使用 WebdriverIO 的日志功能从 chrome 获取浏览器日志 (console.logs),但我得到的只是函数日志不是函数。 var WebdriverIO = require('we
我使用的是 ubuntu 14.04。这是我的代码: var webdriverio = require('webdriverio'); var options = { desiredCapa
为了测试,我有这样的目录结构: 定制 库 测试 页面 在“custom”目录中编写的每个 JavaScript 函数都可以通过“浏览器”对象通过“test”目录进行访问。 这是通过 lib 目录中的“
我正在使用 WebdriverIO 构建一个 e2e 测试套件,但我一直致力于在页面对象之间创建继承。 在 Protractor 中,我们可以通过参数传递上下文,然后只搜索该上下文中的元素。例如, v
我正在尝试在我的应用程序中测试一个场景,其中我需要关闭浏览器和 session 并启动一个新的浏览器和 session 来测试当我传递一组将调用的启动参数时,之前输入的数据是否成功调用数据。尽管我在关
我正在尝试查找一个元素 let selector = "[class='count-stats']"; console.log(browser.element(selector)); 出现错误 { t
我正在从事 webdriverio 自动化项目。我有以下代码。 waitUntilVisible(element, maxTimeOut) { console.log("**********
我正在尝试使用 WebdriverIO 截取整个页面的屏幕截图。 我读过最好的方法是使用 WebdriverCSS增强我的 WebdriverIO 流。 WebdriverCSS自动截图整个页面??
我想覆盖 webdriverio 中的点击命令 在每次点击之前,我都会检查定位器是否存在。我想要这样的东西: browser.addCommand("click", function () {
我的应用程序中有一个类似于此的下拉列表 - Volvo Saab Mercedes Audi 我如何将汽车品牌选项收集到一个数组中?我知道 java selenium 绑定(bin
示例 HTML: asadka_TEST Peter Parker Clark Kent aldkfsd_TEST 类中的 Javascript 代码 class
所以我有一个 250 行的表,我只想从一列中获取所有值并检查它们是否满足要求的条件: const rows = browser.elements(selector..); const number
我正在使用 CucumberJS 为我当前的项目编写测试。该测试将使用 Selenium Server + WebDriverIO 进行测试。现在我坚持测试,我必须选择一个图像文件上传到服务器。我正在
Webdriverio 元素需要是字符串类型吗? 我的代码如下: describe('Test Contact Us form WebdriverUni', function() { it.onl
我对自动化测试非常陌生,目前我完全被以下问题所困扰: 我打开了一个网页(第一个窗口)在同一测试中,我调用 .newWindow(second window) 并在该窗口中执行一些操作。最后一个 Act
http://webdriver.io/guide/getstarted/modes.html 尝试使用 Chromedriver 调试 webdriverio 测试时,我绝对会发疯。您根本无法单步执
我最初的研究让我找到了 jQuery 选择器,它可以让我在 Chrome 检查器中返回正确的元素,但 Webdriver 不能或无法识别该选择器,即使 jQuery 可以识别。 这个片段就是我的选择元
我正在尝试使用 webdriverIO 单击网页中的链接。我可以导航到 google.com 页面,然后输入搜索词。 但是当我尝试单击包含所需文本的链接时,它不会单击该链接。 我做错了什么: 这是我的
我有一个测试,其中包含我想要在多个文件中重复使用的步骤。 我想我可以创建一个名为 common.js 的文件,列出其中的所有函数,然后在需要时调用。 这是推荐的方法吗? 我觉得唯一的问题是常用方法的文
我是一名优秀的程序员,十分优秀!