applitools / Eyes.Selenium.JavaScript

Applitools Eyes SDK For Selenium JavaScript WebDriver
Other
18 stars 18 forks source link

Error: Could not scroll to the x/y corner of the screen #65

Closed davegermiquet closed 5 years ago

davegermiquet commented 6 years ago

Problem or Issue with AppliTools:

When using the api functionality like the following on an angular 1.x web site with protractor using headless option of chrome:

    eyes.setForceFullPageScreenshot(true);
    eyes.setBatch(testPageObject.batchName, testPageObject.uniqueID);
    eyes.open(browser, pageName, pageName);
    eyes.checkWindow(pageName);
    eyes.close().then(done => callback());

I am getting the following error message in some of my tests which causes the rest of the tests to error out not relating to the applitools screen shot:

[18:13:52] W/launcher - Ignoring uncaught error Error: Could not scroll to the x/y corner of the screen Next Test.... [18:13:54] W/launcher - Ignoring uncaught error Error: A test is already running

Then all my tests start failing with the following:

Stack Trace:

TypeError: Cannot read property 'left' of undefined at Object.GeometryUtils.isRegionContainsLocation (/Users/user1/develop/v2/project/node_modules/eyes.utils/src/GeometryUtils.js:227:24) at EyesBase.addMouseTrigger (/Users/user1/develop/v2/project/node_modules/eyes.sdk/src/EyesBase.js:1543:28) at /Users/user1/develop/v2/project/nodemodules/eyes.selenium/src/EyesRemoteWebElement.js:138:34 at ManagedPromise.invokeCallback (/Users/user1/develop/v2/project/nodemodules/selenium-webdriver/lib/promise.js:1376:14) at TaskQueue.execute (/Users/user1/develop/v2/project/nodemodules/selenium-webdriver/lib/promise.js:3084:14) at TaskQueue.executeNext (/Users/user1/develop/v2/project/node_modules/selenium-webdriver/lib/promise.js:3067:27) at asyncRun (/Users/user1/develop/v2/project/node_modules/selenium-webdriver/lib/promise.js:2927:27) at /Users/user1/develop/v2/project/node_modules/selenium-webdriver/lib/promise.js:668:7 at at process._tickCallback (internal/process/next_tick.js:188:7)

Stack trace follows for the first error with applitools:

Error: Could not scroll to the x/y corner of the screen at /Users/user1/develop/v2/project/nodemodules/eyes.selenium/src/EyesSeleniumUtils.js:967:31 at ManagedPromise.invokeCallback (/Users/user1/develop/v2/project/nodemodules/selenium-webdriver/lib/promise.js:1376:14) at TaskQueue.execute (/Users/user1/develop/v2/project/nodemodules/selenium-webdriver/lib/promise.js:3084:14) at TaskQueue.executeNext (/Users/user1/develop/v2/project/node_modules/selenium-webdriver/lib/promise.js:3067:27) at asyncRun (/Users/user1/develop/v2/project/node_modules/selenium-webdriver/lib/promise.js:2927:27) at /Users/user1/develop/v2/project/node_modules/selenium-webdriver/lib/promise.js:668:7 at at process._tickCallback (internal/process/next_tick.js:188:7) From: Task: at PromiseFactory.that._promiseFactory.setFactoryMethods.defer [as _promiseFactoryFunc] (/Users/user1/develop/v2/project/node_modules/eyes.selenium/src/Eyes.js:84:25) at PromiseFactory.makePromise (/Users/user1/develop/v2/project/node_modules/eyes.utils/src/PromiseFactory.js:38:25) at Eyes._getAppData (/Users/user1/develop/v2/project/node_modules/eyes.sdk/src/EyesBase.js:1173:37) at MatchWindowTask._retryMatch (/Users/user1/develop/v2/project/node_modules/eyes.sdk/src/MatchWindowTask.js:99:25) at MatchWindowTask. (/Users/user1/develop/v2/project/node_modules/eyes.sdk/src/MatchWindowTask.js:177:32) at new Promise () at /Users/user1/develop/v2/project/nodemodules/eyes.selenium/ src/Eyes.js:85:24 at TaskQueue.execute (/Users/user1/develop/v2/project/nodemodules/selenium-webdriver/lib/promise.js:3084:14) at TaskQueue.executeNext (/Users/user1/develop/v2/project/node_modules/selenium-webdriver/lib/promise.js:3067:27) at asyncRun (/Users/user1/develop/v2/project/node_modules/selenium-webdriver/lib/promise.js:2974:25) From: Task: at PromiseFactory.that._promiseFactory.setFactoryMethods.defer [as _promiseFactoryFunc] (/Users/user1/develop/v2/project/node_modules/eyes.selenium/src/Eyes.js:84:25) at PromiseFactory.makePromise (/Users/user1/develop/v2/project/node_modules/eyes.utils/src/PromiseFactory.js:38:25) at MatchWindowTask.matchWindow (/Users/user1/develop/v2/project/node_modules/eyes.sdk/src/MatchWindowTask.js:161:37) at Eyes. (/Users/user1/develop/v2/project/nodemodules/eyes.sdk/src/EyesBase.js:1305:54) at ManagedPromise.invokeCallback (/Users/user1/develop/v2/project/nodemodules/selenium-webdriver/lib/promise.js:1376:14) at TaskQueue.execute (/Users/user1/develop/v2/project/nodemodules/selenium-webdriver/lib/promise.js:3084:14) at TaskQueue.executeNext (/Users/user1/develop/v2/project/node_modules/selenium-webdriver/lib/promise.js:3067:27) at asyncRun (/Users/user1/develop/v2/project/node_modules/selenium-webdriver/lib/promise.js:2927:27) at /Users/user1/develop/v2/project/node_modules/selenium-webdriver/lib/promise.js:668:7 at From: Task:

davegermiquet commented 6 years ago

This seems to be a workaround for the bug, so far I haven't seen the issue:

browser.executeScript('window.scrollTo(0,0);').then(function () { return browser.sleep(500).then(function () { eyes.setForceFullPageScreenshot(true); eyes.setBatch(testPageObject.batchName, testPageObject.uniqueID); eyes.open(browser, pageName, pageName); eyes.checkWindow(pageName); eyes.close().then(done => callback()); });