@applitools/spec-driver-puppeteer 1.1.5 → 1.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -28,4 +28,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  const spec = __importStar(require("./spec-driver"));
30
30
  __exportStar(require("./spec-driver"), exports);
31
- exports.default = spec;
31
+ const typedSpec = spec;
32
+ exports.default = typedSpec;
@@ -23,9 +23,10 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.build = exports.waitUntilDisplayed = exports.scrollIntoView = exports.hover = exports.type = exports.click = exports.takeScreenshot = exports.visit = exports.getUrl = exports.getTitle = exports.getDriverInfo = exports.getCookies = exports.setViewportSize = exports.getViewportSize = exports.findElements = exports.findElement = exports.childContext = exports.parentContext = exports.mainContext = exports.executeScript = exports.isStaleElementError = exports.extractContext = exports.transformSelector = exports.isSelector = exports.isElement = exports.isContext = exports.isDriver = void 0;
26
+ exports.build = exports.waitUntilDisplayed = exports.scrollIntoView = exports.hover = exports.type = exports.click = exports.takeScreenshot = exports.visit = exports.getUrl = exports.getTitle = exports.getDriverInfo = exports.getCookies = exports.setViewportSize = exports.getViewportSize = exports.findElements = exports.findElement = exports.childContext = exports.parentContext = exports.mainContext = exports.executeScript = exports.isStaleElementError = exports.extractContext = exports.untransformSelector = exports.transformSelector = exports.isSelector = exports.isElement = exports.isContext = exports.isDriver = void 0;
27
27
  const utils = __importStar(require("@applitools/utils"));
28
28
  // #region HELPERS
29
+ const XPATH_SELECTOR_START = ['/', '(', '../', './', '*/'];
29
30
  async function handleToObject(handle) {
30
31
  const [, type] = handle.toString().split('@');
31
32
  if (type === 'array') {
@@ -97,8 +98,8 @@ function scriptRunner(script, arg, ...elements) {
97
98
  }
98
99
  }
99
100
  }
100
- function isXpath(selector) {
101
- return selector.startsWith('//') || selector.startsWith('..');
101
+ function isXpathSelector(selector) {
102
+ return XPATH_SELECTOR_START.some(start => selector.startsWith(start));
102
103
  }
103
104
  // #endregion
104
105
  // #region UTILITY
@@ -130,6 +131,13 @@ function transformSelector(selector) {
130
131
  return selector;
131
132
  }
132
133
  exports.transformSelector = transformSelector;
134
+ function untransformSelector(selector) {
135
+ if (utils.types.isString(selector)) {
136
+ return { type: isXpathSelector(selector) ? 'xpath' : 'css', selector };
137
+ }
138
+ return selector;
139
+ }
140
+ exports.untransformSelector = untransformSelector;
133
141
  function extractContext(page) {
134
142
  return isDriver(page) ? page.mainFrame() : page;
135
143
  }
@@ -169,12 +177,12 @@ async function childContext(_frame, element) {
169
177
  exports.childContext = childContext;
170
178
  async function findElement(frame, selector, parent) {
171
179
  const root = parent !== null && parent !== void 0 ? parent : frame;
172
- return isXpath(selector) ? root.$x(selector).then(elements => elements[0]) : root.$(selector);
180
+ return (isXpathSelector(selector) ? root.$x(selector).then(elements => elements[0]) : root.$(selector));
173
181
  }
174
182
  exports.findElement = findElement;
175
183
  async function findElements(frame, selector, parent) {
176
184
  const root = parent !== null && parent !== void 0 ? parent : frame;
177
- return isXpath(selector) ? root.$x(selector) : root.$$(selector);
185
+ return (isXpathSelector(selector) ? root.$x(selector) : root.$$(selector));
178
186
  }
179
187
  exports.findElements = findElements;
180
188
  async function getViewportSize(page) {
@@ -219,8 +227,8 @@ async function visit(page, url) {
219
227
  }
220
228
  exports.visit = visit;
221
229
  async function takeScreenshot(page) {
222
- const scr = await page._client.send('Page.captureScreenshot');
223
- return scr.data;
230
+ const result = await page.screenshot({ captureBeyondViewport: false });
231
+ return result;
224
232
  }
225
233
  exports.takeScreenshot = takeScreenshot;
226
234
  async function click(frame, element) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applitools/spec-driver-puppeteer",
3
- "version": "1.1.5",
3
+ "version": "1.1.8",
4
4
  "keywords": [
5
5
  "puppeteer",
6
6
  "chrome devtools protocol",
@@ -17,7 +17,8 @@
17
17
  },
18
18
  "repository": {
19
19
  "type": "git",
20
- "url": "git://github.com/applitools/eyes.sdk.javascript1.git"
20
+ "url": "git://github.com/applitools/eyes.sdk.javascript1.git",
21
+ "directory": "js/packages/spec-driver-puppeteer"
21
22
  },
22
23
  "license": "SEE LICENSE IN LICENSE",
23
24
  "author": {
@@ -38,6 +39,7 @@
38
39
  "lint": "eslint '**/*.ts'",
39
40
  "build": "ttsc",
40
41
  "test": "mocha ./test/**/*.spec.ts --no-timeouts -r ts-node/register",
42
+ "test:sanity": "yarn test",
41
43
  "setup": "yarn puppeteer:setup",
42
44
  "puppeteer:setup": "PUPPETEER_PRODUCT=firefox node ./node_modules/puppeteer/install.js",
43
45
  "upgrade:framework": "if [ ! -z $APPLITOOLS_PUPPETEER_VERSION ]; then packagejson=`cat package.json`; yarn upgrade --no-lockfile puppeteer@$APPLITOOLS_PUPPETEER_VERSION; echo \"$packagejson\" > package.json; fi",
@@ -54,14 +56,14 @@
54
56
  }
55
57
  },
56
58
  "dependencies": {
57
- "@applitools/types": "1.5.2",
58
- "@applitools/utils": "1.3.7"
59
+ "@applitools/types": "1.5.7",
60
+ "@applitools/utils": "1.3.10"
59
61
  },
60
62
  "devDependencies": {
61
- "@applitools/api-extractor": "1.2.8",
62
- "@applitools/bongo": "^2.1.5",
63
+ "@applitools/api-extractor": "1.2.9",
64
+ "@applitools/bongo": "^2.1.6",
63
65
  "@applitools/scripts": "1.1.0",
64
- "@applitools/test-utils": "1.3.3",
66
+ "@applitools/test-utils": "1.4.3",
65
67
  "@types/mocha": "^9.1.1",
66
68
  "@types/node": "12",
67
69
  "@typescript-eslint/eslint-plugin": "^5.27.0",
@@ -74,7 +76,7 @@
74
76
  "husky": "^4.3.7",
75
77
  "mocha": "^9.2.2",
76
78
  "prettier": "^2.6.2",
77
- "puppeteer": "^14.1.2",
79
+ "puppeteer": "^15.3.1",
78
80
  "ts-node": "^10.8.0",
79
81
  "ttypescript": "^1.5.13",
80
82
  "typescript": "^4.7.2"
package/types/index.d.ts CHANGED
@@ -4,7 +4,8 @@ export function isDriver(page: any): page is Driver;
4
4
  export function isContext(frame: any): frame is Context;
5
5
  export function isElement(element: any): element is Element;
6
6
  export function isSelector(selector: any): selector is Selector;
7
- export function transformSelector(selector: Selector | (string | { selector: string | Selector; type?: string; })): Selector;
7
+ export function transformSelector(selector: string | { selector: string | Selector; type?: string; }): Selector;
8
+ export function untransformSelector(selector: Selector): string | { selector: string; type?: string; };
8
9
  export function extractContext(page: Driver | Context): Context;
9
10
  export function isStaleElementError(err: any): boolean;
10
11
  export function executeScript(frame: Context, script: string | ((arg: any) => any), arg: any): Promise<any>;
@@ -20,7 +21,7 @@ export function getDriverInfo(_page: Driver): Promise<import('@applitools/types'
20
21
  export function getTitle(page: Driver): Promise<string>;
21
22
  export function getUrl(page: Driver): Promise<string>;
22
23
  export function visit(page: Driver, url: string): Promise<void>;
23
- export function takeScreenshot(page: Driver): Promise<string>;
24
+ export function takeScreenshot(page: Driver): Promise<Buffer>;
24
25
  export function click(frame: Context, element: Element | Selector): Promise<void>;
25
26
  export function type(frame: Context, element: Element | Selector, keys: string): Promise<void>;
26
27
  export function hover(frame: Context, element: Element | Selector): Promise<void>;