1

I am running grunt-protractor-runner.

protractor: 2.0.0 jasmine: 1.3 Linux Ubuntu 14.4


I am having issues while clicking the next page button and get error below.

UnknownError: unknown error: Element is not clickable at point (194, -212) (Session info: chrome=42.0.2311.90) (Driver info: chromedriver=2.14.313457 (3d645c400edf2e2c500566c9aa096063e707c9cf),platform=Linux 3.13.0-49-generic x86_64) with stack trace`

UnknownError: unknown error: Element is not clickable at point (194, -212) (Session info: chrome=42.0.2311.90) (Driver info: chromedriver=2.14.313457 (3d645c400edf2e2c500566c9aa096063e707c9cf),platform=Linux 3.13.0-49-generic x86_64) at new bot.Error (/home/hasan/WebstormProjects/test/node_modules/protractor/node_modules/selenium-webdriver/lib/atoms/error.js:113:18) at Object.bot.response.checkResponse (/home/hasan/WebstormProjects/test/node_modules/protractor/node_modules/selenium-webdriver/lib/atoms/response.js:106:9) at /home/hasan/WebstormProjects/test/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:377:20 at [object Object].promise.ControlFlow.runInFrame_ (/home/hasan/WebstormProjects/test/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1877:20) at [object Object].promise.Callback_.goog.defineClass.notify (/home/hasan/WebstormProjects/test/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:2464:25) at [object Object].promise.Promise.notify_ (/home/hasan/WebstormProjects/test/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:563:12) at Array.forEach (native) at Object.goog.array.forEach (/home/hasan/WebstormProjects/test/node_modules/protractor/node_modules/selenium-webdriver/lib/goog/array/array.js:203:43) at [object Object].promise.Promise.notifyAll_ (/home/hasan/WebstormProjects/test/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:552:16) at [object Object].goog.async.run.processWorkQueue [as _onTimeout] (/home/hasan/WebstormProjects/test/node_modules/protractor/node_modules/selenium-webdriver/lib/goog/async/run.js:125:21) Error at [object Object].ElementArrayFinder.applyAction_ (/home/hasan/WebstormProjects/test/node_modules/protractor/lib/element.js:403:21) at [object Object].self.(anonymous function) [as click] (/home/hasan/WebstormProjects/test/node_modules/protractor/lib/element.js:76:19) at [object Object].self.(anonymous function) [as click] (/home/hasan/WebstormProjects/test/node_modules/protractor/lib/element.js:733:11) at [object Object].


With reference to a thread at stackoverflow Debugging "Element is not clickable at point" error I worked around and here is my code

it("It should click next page botton" + pageIndex, function() {
    pageIndex++;
    //var nextPageSelector = element(by.id("pageNavigator_" + pageIndex));
    var nextPageSelector = element(by.xpath('//li[@class="next"]/a'));
    browser.debugger();
    //expect(browser.isElementPresent(nextPageSelector)).toBeTruthy();
    console.log("Page title: " + pageTitles.length + "Page index" + pageIndex);

    if (pageIndex <= pageTitles.length) {
        console.log("About to click next button");
        //console.log("Co-ordinates: "+ nextPageSelector2.getCoordinates());
        nextPageSelector.getLocation().then(function(buttonLocation) {
            console.log("X coordinate: " + buttonLocation.x + " Y Coordinate: " + buttonLocation.y);
            var sc = '"scroll(' + buttonLocation.x + ', ' + buttonLocation.y + ')"';
            console.log("Statement: " + sc);
            browser.actions().mouseMove(buttonLocation.x , buttonLocation.y);//.click().perform();
            //browser.executeScript(sc); //
            browser.wait(2000);
            nextPageSelector.click().then(function() {
                console.log("Successfully clicked");
                browser.waitForAngular();
            }, function() {
                console.log("Unable to click");
            });
        });

    }
});

I didn't get hold to scroll to the location of "next page" button.

Community
  • 1
  • 1
Hasan
  • 188
  • 8
  • 2
    Just a shot in the dark: have you tried maximizing the browser window: `browser.driver.manage().window().maximize();`? – alecxe May 06 '15 at 13:03
  • Thanks but it did not help. – Hasan May 08 '15 at 05:27
  • This trick works for me var filterWidget = browser.findElement(by.id(widgetsId)); var scrollView = function() { arguments[0].scrollIntoView(); }; browser.executeScript(scrollView, filterWidget); – Hasan May 12 '15 at 07:23
  • Thanks for sharing. Just post it as an answer and accept it. – alecxe May 12 '15 at 08:15

2 Answers2

2

This trick works for me:

var filterWidget = browser.findElement(by.id(widgetsId)); 
var scrollIntoView= function() { arguments[0].scrollIntoView(); }; 
browser.executeScript(scrollIntoView, filterWidget);
Hasan
  • 188
  • 8
0

You can also set the window size in your config file.

In your protractor.conf.js:

onPrepare: function() {
  browser.manage().window().setSize(1600, 1000);
}
user1775718
  • 1,499
  • 2
  • 19
  • 32