ThinkBonobo
ThinkBonobo

Reputation: 16515

WebdriverIO browser.click gives error "Other element would receive the click". How do I fix?

I am getting the following error from my webdriverIO selenium code when I try to run it:

Failed: unknown error: Element is not clickable at point (389, 709). Other element would receive the click: < html lang="en" >...< /html >

here's the relevant code:

const checkboxSelector = 
    getAttributeSelector('data-test', 'manual-checkbox');
browser.click(checkboxSelector);

How do I get rid of this error?

--- ADDITIONAL INFO ---

The test is being run with chromedriver:

var desktop = exports.desktop = [{
    browser: 'Chrome',
    os: 'Windows',
    os_version: '7'
}];

Upvotes: 6

Views: 9294

Answers (2)

Denzik
Denzik

Reputation: 316

Does your page potentially have hidden elements or multiple elements that you may be targeting with your selector? When I've seen this error, often times my single selector could behind the scenes be targeting another element. The message "Other element would receive the click" was often the key to indicating that it may have picked up multiple elements and the Element you had intended to click, was not what the script would have clicked.

You can test this by using your CSS Selector in the browser console with

$$('data-test')

If you see multiple elements returned, you may need to be more specific with your Selector to more precisely narrow down the one you intend to act on.

Upvotes: 1

ThinkBonobo
ThinkBonobo

Reputation: 16515

Seems like the issue was that you needed to scroll to the appropriate element explicitly to click the button. Not sure why it's not automatic but it's an easy fix using browser.scroll(selector) (http://webdriver.io/api/utility/scroll.html).

const checkboxSelector = 
    getAttributeSelector('data-test', 'manual-checkbox');
browser.scroll(checkboxSelector);
browser.click(checkboxSelector);

Problem solved

Upvotes: 1

Related Questions