anahorn

ignore multiple coded regions in Applitools

Mar 7th, 2019
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import { Builder } from 'selenium-webdriver';
  2. const { Eyes, MatchLevel, Target } = require('eyes.selenium');
  3.  
  4. //all dynamic elements
  5. const dynamicElementsAll = {
  6.   css: '.parent .child'
  7. };
  8.  
  9. //we are going to replace %s with the actual number later
  10. const dynamicElementSel = '.parent:nth-child(%s) .child';
  11.  
  12. //target object that takes a screenshot in Strict mode
  13. const strictMatchLevel = MatchLevel.Strict;
  14. const targetStrict = (matchLevel = strictMatchLevel) =>
  15.   Target.window().matchLevel(matchLevel);
  16.  
  17. //replace inline variables in dynamic selector strings
  18. async function parse(str) {
  19.   var args = [].slice.call(arguments, 1);
  20.   var i = 0;
  21.   return str.replace(/%s/g, () => args[i++]);
  22. }
  23.  
  24. //adding all dynamic elements to the target one by one in a loop instead of a chain
  25. async function ignoreDynamicElements(target) {
  26.   var elements = await driver.findElements(dynamicElementsAll);
  27.   for (var i = 1; i <= elements.length; i++) {
  28.     target = target.ignore(By.css(parse(dynamicElementSel, i)));
  29.   }
  30.   return target;
  31. }
  32.  
  33. //initialize Applitools Eyes instance
  34. var eyes = new Eyes();
  35. eyes.setApiKey("your applitools api key");
  36. eyes.setOs("platform name");
  37.  
  38. //driver object should be initialized before we open Applitools Eyes
  39. /*
  40. var driver = new Builder()
  41.   .withCapabilities(...)
  42.   .usingServer(...)
  43.   .build();
  44. */
  45.  
  46. //now open eyes
  47. await eyes.open(driver, "app name", "scenario name");
  48.  
  49. //here we pass the modified Target object where we previously ignored all dynamic elements
  50. await eyes.check("steenshot name", await ignoreDynamicElements(targetStrict()));
  51.  
  52. await eyes.close();
  53. await eyes.abortIfNotClosed();
  54.  
  55. //quitting the webdriver
  56. await driver.quit();
Add Comment
Please, Sign In to add comment