@applitools/spec-driver-webdriver 1.0.3 → 1.0.5

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.
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.build = exports.switchWorld = exports.getWorlds = exports.getCurrentWorld = exports.performAction = exports.getElementAttribute = exports.getElementRegion = exports.setOrientation = exports.getOrientation = exports.getSystemBars = exports.click = exports.takeScreenshot = exports.visit = exports.getUrl = exports.getTitle = exports.getDriverInfo = exports.getCapabilities = exports.getCookies = exports.setWindowSize = exports.getWindowSize = exports.getElementText = exports.setElementText = exports.findElements = exports.findElement = exports.childContext = exports.parentContext = exports.mainContext = exports.executeScript = exports.isEqualElements = exports.isStaleElementError = exports.extractHostName = exports.untransformSelector = exports.transformSelector = exports.transformElement = exports.transformDriver = exports.isSelector = exports.isShadowRoot = exports.isElement = exports.isDriver = void 0;
29
+ exports.build = exports.switchWorld = exports.getWorlds = exports.getCurrentWorld = exports.performAction = exports.getElementAttribute = exports.getElementRegion = exports.setOrientation = exports.getOrientation = exports.getSystemBars = exports.scrollIntoView = exports.hover = exports.click = exports.takeScreenshot = exports.visit = exports.getUrl = exports.getTitle = exports.getDriverInfo = exports.getCapabilities = exports.getCookies = exports.getSessionMetadata = exports.setWindowSize = exports.getWindowSize = exports.getElementText = exports.setElementText = exports.findElements = exports.findElement = exports.childContext = exports.parentContext = exports.mainContext = exports.executeScript = exports.isEqualElements = exports.isStaleElementError = exports.extractHostName = exports.untransformSelector = exports.transformSelector = exports.transformElement = exports.transformDriver = exports.isSelector = exports.isShadowRoot = exports.isElement = exports.isDriver = void 0;
30
30
  const url_1 = require("url");
31
31
  const utils = __importStar(require("@applitools/utils"));
32
32
  const webdriver_1 = __importStar(require("webdriver"));
@@ -118,10 +118,7 @@ function transformDriver(driver) {
118
118
  ...environment,
119
119
  };
120
120
  if ((_a = driver.proxy) === null || _a === void 0 ? void 0 : _a.url) {
121
- const agent = new proxy_agent_1.default({
122
- ...(0, url_1.parse)(driver.proxy.url),
123
- rejectUnauthorized: false,
124
- });
121
+ const agent = new proxy_agent_1.default({ ...(0, url_1.parse)(driver.proxy.url), rejectUnauthorized: false });
125
122
  agent.callback = utils.general.wrap(agent.callback.bind(agent), (fn, request, options, ...rest) => {
126
123
  return fn(request, { ...options, rejectUnauthorized: false }, ...rest);
127
124
  });
@@ -294,6 +291,19 @@ async function setWindowSize(driver, size) {
294
291
  }
295
292
  }
296
293
  exports.setWindowSize = setWindowSize;
294
+ // NOTE: this command is meant to be called when running with the eg-client
295
+ // otherwise it will not be implemented on the driver and throw
296
+ async function getSessionMetadata(driver) {
297
+ const cmd = (0, webdriver_1.command)('GET', '/session/:sessionId/applitools/metadata', {
298
+ command: 'getSessionMetadata',
299
+ description: '',
300
+ ref: '',
301
+ parameters: [],
302
+ });
303
+ const result = await cmd.call(driver);
304
+ return result;
305
+ }
306
+ exports.getSessionMetadata = getSessionMetadata;
297
307
  async function getCookies(driver, context) {
298
308
  if (context)
299
309
  return driver.getAllCookies();
@@ -351,6 +361,27 @@ async function click(driver, element) {
351
361
  await driver.elementClick(extractElementId(resolvedElement));
352
362
  }
353
363
  exports.click = click;
364
+ async function hover(driver, element) {
365
+ if (!driver.isW3C)
366
+ return await driver.moveToElement(extractElementId(element));
367
+ const { x, y, width, height } = await driver.getElementRect(extractElementId(element));
368
+ const { scrollX, scrollY } = await driver.executeScript('return {scrollX:window.pageXOffset,scrollY:window.pageYOffset}', []);
369
+ const offsetX = Math.floor(x - scrollX + width / 2);
370
+ const offsetY = Math.floor(y - scrollY + height / 2);
371
+ await driver.performActions([
372
+ {
373
+ type: 'pointer',
374
+ id: 'mouse',
375
+ parameters: { pointerType: 'mouse' },
376
+ actions: [{ type: 'pointerMove', duration: 0, x: offsetX, y: offsetY }],
377
+ },
378
+ ]);
379
+ }
380
+ exports.hover = hover;
381
+ async function scrollIntoView(driver, element, align = false) {
382
+ await driver.executeScript('arguments[0].scrollIntoView(arguments[1])', [element, align]);
383
+ }
384
+ exports.scrollIntoView = scrollIntoView;
354
385
  // #endregion
355
386
  // #region APPIUM COMMANDS
356
387
  async function getSystemBars(browser) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applitools/spec-driver-webdriver",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "keywords": [
5
5
  "webdriver",
6
6
  "chrome devtools protocol",
@@ -66,15 +66,15 @@
66
66
  }
67
67
  },
68
68
  "dependencies": {
69
- "@applitools/driver": "1.11.20",
70
- "@applitools/utils": "1.3.22",
69
+ "@applitools/driver": "1.11.25",
70
+ "@applitools/utils": "1.3.26",
71
71
  "proxy-agent": "5.0.0"
72
72
  },
73
73
  "devDependencies": {
74
74
  "@applitools/api-extractor": "1.2.11",
75
- "@applitools/bongo": "^2.2.0",
75
+ "@applitools/bongo": "^2.2.2",
76
76
  "@applitools/scripts": "1.2.0",
77
- "@applitools/test-utils": "1.5.5",
77
+ "@applitools/test-utils": "1.5.8",
78
78
  "@types/mocha": "^9.1.1",
79
79
  "@types/node": "12",
80
80
  "@typescript-eslint/eslint-plugin": "^5.27.0",
@@ -86,6 +86,7 @@
86
86
  "eslint-plugin-prettier": "^4.0.0",
87
87
  "husky": "^4.3.7",
88
88
  "mocha": "^9.2.2",
89
+ "nock": "^13.2.9",
89
90
  "prettier": "^2.6.2",
90
91
  "ts-node": "^10.8.0",
91
92
  "ttypescript": "^1.5.12",
package/types/index.d.ts CHANGED
@@ -21,6 +21,7 @@ export function setElementText(driver: Driver, element: Element, text: string):
21
21
  export function getElementText(driver: Driver, element: Element): Promise<string>;
22
22
  export function getWindowSize(driver: Driver): Promise<{ width: number; height: number; }>;
23
23
  export function setWindowSize(driver: Driver, size: { width: number; height: number; }): Promise<void>;
24
+ export function getSessionMetadata(driver: Driver): Promise<void | []>;
24
25
  export function getCookies(driver: Driver, context?: undefined | boolean): Promise<Array<import('@applitools/driver').Cookie>>;
25
26
  export function getCapabilities(driver: Driver): Promise<Record<string, any>>;
26
27
  export function getDriverInfo(driver: Driver): Promise<import('@applitools/driver').DriverInfo>;
@@ -29,6 +30,8 @@ export function getUrl(driver: Driver): Promise<string>;
29
30
  export function visit(driver: Driver, url: string): Promise<void>;
30
31
  export function takeScreenshot(driver: Driver): Promise<string>;
31
32
  export function click(driver: Driver, element: Element | Selector): Promise<void>;
33
+ export function hover(driver: Driver, element: Element): Promise<any>;
34
+ export function scrollIntoView(driver: Driver, element: Element, align: boolean): Promise<void>;
32
35
  export function getSystemBars(browser: Driver): Promise<{ statusBar: {
33
36
  visible: boolean;
34
37
  x: number;