flagpole
Version:
Simple and fast DOM integration, headless or headful browser, and REST API testing framework.
76 lines • 3.49 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const puppeteerresponse_1 = require("./puppeteerresponse");
const puppeteerelement_1 = require("./puppeteerelement");
const util_1 = require("./util");
class BrowserResponse extends puppeteerresponse_1.PuppeteerResponse {
get responseTypeName() {
return "Browser";
}
get responseType() {
return "browser";
}
find(path) {
return __awaiter(this, void 0, void 0, function* () {
const page = this.context.page;
if (page !== null) {
const el = yield page.$(path);
if (el !== null) {
return yield puppeteerelement_1.PuppeteerElement.create(el, this.context, null, path);
}
}
return this._wrapAsValue(null, path);
});
}
findAll(path) {
return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {
const response = this;
const puppeteerElements = [];
if (this.context.page !== null) {
const elements = yield this.context.page.$$(path);
yield util_1.asyncForEach(elements, (el, i) => __awaiter(this, void 0, void 0, function* () {
const element = yield puppeteerelement_1.PuppeteerElement.create(el, response.context, `${path} [${i}]`, path);
puppeteerElements.push(element);
}));
}
resolve(puppeteerElements);
}));
}
findXPath(xPath) {
return __awaiter(this, void 0, void 0, function* () {
const page = this.context.page;
if (page !== null) {
const elements = yield page.$x(xPath);
if (elements.length > 0) {
return yield puppeteerelement_1.PuppeteerElement.create(elements[0], this.context, null, xPath);
}
}
return this._wrapAsValue(null, xPath);
});
}
findAllXPath(xPath) {
return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {
const response = this;
const puppeteerElements = [];
if (this.context.page !== null) {
const elements = yield this.context.page.$x(xPath);
yield util_1.asyncForEach(elements, (el, i) => __awaiter(this, void 0, void 0, function* () {
const element = yield puppeteerelement_1.PuppeteerElement.create(el, response.context, `${xPath} [${i}]`, xPath);
puppeteerElements.push(element);
}));
}
resolve(puppeteerElements);
}));
}
}
exports.BrowserResponse = BrowserResponse;
//# sourceMappingURL=browserresponse.js.map