[Selenium] Click Node: Element not clickable at point, other element would receive the click

Hi @qqilihq,

since recently I face the below error. I assume something in the interface changed to the worse:

2024-08-09 21:34:43,492 : ERROR : KNIME-Worker-2801-Click 3:1126:0:972:0:1156:0:1155:0:1140 :  : Node : Click : 3:1126:0:972:0:1156:0:1155:0:1140 : Execute failed: element click intercepted: Element <a>...</a> is not clickable at point (732, 583). Other element would receive the click: <div class="current">...</div>
ws.palladian.nodes.selenium.SeleniumNodeExecutionException: element click intercepted: Element <a>...</a> is not clickable at point (732, 583). Other element would receive the click: <div class="current">...</div>
	at ws.palladian.nodes.selenium.AbstractWebElementMethodNodeModel.execute(AbstractWebElementMethodNodeModel.java:319)
	at org.knime.core.node.NodeModel.execute(NodeModel.java:812)
	at org.knime.core.node.NodeModel.executeModel(NodeModel.java:588)
	at org.knime.core.node.Node.invokeFullyNodeModelExecute(Node.java:1286)
	at org.knime.core.node.Node.execute(Node.java:1049)
	at org.knime.core.node.workflow.NativeNodeContainer.performExecuteNode(NativeNodeContainer.java:594)
	at org.knime.core.node.exec.LocalNodeExecutionJob.mainExecute(LocalNodeExecutionJob.java:98)
	at org.knime.core.node.workflow.NodeExecutionJob.internalRun(NodeExecutionJob.java:198)
	at org.knime.core.node.workflow.NodeExecutionJob.run(NodeExecutionJob.java:117)
	at org.knime.core.util.ThreadUtils$RunnableWithContextImpl.runWithContext(ThreadUtils.java:367)
	at org.knime.core.util.ThreadUtils$RunnableWithContext.run(ThreadUtils.java:221)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at org.knime.core.util.ThreadPool$MyFuture.run(ThreadPool.java:123)
	at org.knime.core.util.ThreadPool$Worker.run(ThreadPool.java:246)
Caused by: org.openqa.selenium.ElementClickInterceptedException: element click intercepted: Element <a>...</a> is not clickable at point (732, 583). Other element would receive the click: <div class="current">...</div>
  (Session info: chrome=127.0.6533.89)
Build info: version: '4.22.0', revision: 'c5f3146703*'
System info: os.name: 'Windows 11', os.arch: 'amd64', os.version: '10.0', java.version: '17.0.5'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [4ec61b84fd4a5a4bc5b27d6cfaafe3d1, clickElement {id=f.2CF553BF093CC062915B169F74D5BC9C.d.1367CCA06B384B6FBEA84843AFA4388A.e.44629}]
Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 127.0.6533.89, chrome: {chromedriverVersion: 127.0.6533.88 (a2d0cb026721..., userDataDir: C:\Users\MIKEWI~1\AppData\L...}, fedcm:accounts: true, goog:chromeOptions: {debuggerAddress: localhost:7511}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: windows, proxy: Proxy(), se:cdp: ws://localhost:7511/devtool..., se:cdpVersion: 127.0.6533.89, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true}
Element: [[ChromeDriver: chrome on windows (4ec61b84fd4a5a4bc5b27d6cfaafe3d1)] -> xpath: //*[@class="section" and .//@id="reservations_active"]//ul[contains(@class, "pagination")]/li[contains(@class, "arrow") and not(contains(@class, "disabled"))][last()]/a[.//*[contains(@class, "fa-angle-right")]]]
Session ID: 4ec61b84fd4a5a4bc5b27d6cfaafe3d1
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Unknown Source)
	at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source)
	at org.openqa.selenium.remote.ErrorCodec.decode(ErrorCodec.java:167)
	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:138)
	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:50)
	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:190)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:518)
	at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:223)
	at org.openqa.selenium.remote.RemoteWebElement.click(RemoteWebElement.java:76)
	at jdk.internal.reflect.GeneratedMethodAccessor291.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
	at ws.palladian.nodes.selenium.SeleniumUtils$SeleniumSyncInvocationHandler.invoke(SeleniumUtils.java:45)
	at ws.palladian.nodes.selenium.SeleniumUtils$2.invoke(SeleniumUtils.java:208)
	at jdk.proxy23/jdk.proxy23.$Proxy101.click(Unknown Source)
	at ws.palladian.nodes.selenium.click3.Click3NodeFactory$ClickType.lambda$0(Click3NodeFactory.java:30)
	at ws.palladian.nodes.selenium.click3.Click3NodeFactory$ClickType.execute(Click3NodeFactory.java:43)
	at ws.palladian.nodes.selenium.click3.Click3NodeFactory$1.execMethod(Click3NodeFactory.java:72)
	at ws.palladian.nodes.selenium.AbstractWebElementMethodNodeModel.execute(AbstractWebElementMethodNodeModel.java:317)
	... 14 more

I’d like to suggest extending the Click node by a feature to wait until the element becomes clickable because sometimes the UI is still being animated as Selenium is simply to fast.

I can say with certainty that the element is present and was found my a preceding Find Element Node. The element which wrongfully might receive the click is located to the left and should not get it et all.

image

Another suggestion might be to add an option to force click, mitigating false positives.

Best
Mike

I believe I figured out the cause. The element <div class="flex-grow-1"> which would receive the click wrongfully seems to be an animated element which, upon calling the click, I assume at the upper left most pixel of the targeted element, has moved / shifted the layout.

The only workaround at the moment might be to artificially slow down the process to wait for the animation to commence.

2024-08-11 17:58:16,197 : ERROR : KNIME-Worker-497-Click 3:1126:0:972:0:1377:0:1382 :  : Node : Click : 3:1126:0:972:0:1377:0:1382 : Execute failed: element click intercepted: Element <div id="ctrl-reservation-reservation__cancel" class="button--secondary button--neutral button--icon button button--icon button--cancel no-print" title="Abbrechen">...</div> is not clickable at point (1519, 142). Other element would receive the click: <div class="flex-grow-1"></div>
ws.palladian.nodes.selenium.SeleniumNodeExecutionException: element click intercepted: Element <div id="ctrl-reservation-reservation__cancel" class="button--secondary button--neutral button--icon button button--icon button--cancel no-print" title="Abbrechen">...</div> is not clickable at point (1519, 142). Other element would receive the click: <div class="flex-grow-1"></div>
	at ws.palladian.nodes.selenium.AbstractWebElementMethodNodeModel.execute(AbstractWebElementMethodNodeModel.java:319)
	at org.knime.core.node.NodeModel.execute(NodeModel.java:812)
	at org.knime.core.node.NodeModel.executeModel(NodeModel.java:588)
	at org.knime.core.node.Node.invokeFullyNodeModelExecute(Node.java:1286)
	at org.knime.core.node.Node.execute(Node.java:1049)
	at org.knime.core.node.workflow.NativeNodeContainer.performExecuteNode(NativeNodeContainer.java:594)
	at org.knime.core.node.exec.LocalNodeExecutionJob.mainExecute(LocalNodeExecutionJob.java:98)
	at org.knime.core.node.workflow.NodeExecutionJob.internalRun(NodeExecutionJob.java:198)
	at org.knime.core.node.workflow.NodeExecutionJob.run(NodeExecutionJob.java:117)
	at org.knime.core.util.ThreadUtils$RunnableWithContextImpl.runWithContext(ThreadUtils.java:367)
	at org.knime.core.util.ThreadUtils$RunnableWithContext.run(ThreadUtils.java:221)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at org.knime.core.util.ThreadPool$MyFuture.run(ThreadPool.java:123)
	at org.knime.core.util.ThreadPool$Worker.run(ThreadPool.java:246)
Caused by: org.openqa.selenium.ElementClickInterceptedException: element click intercepted: Element <div id="ctrl-reservation-reservation__cancel" class="button--secondary button--neutral button--icon button button--icon button--cancel no-print" title="Abbrechen">...</div> is not clickable at point (1519, 142). Other element would receive the click: <div class="flex-grow-1"></div>
  (Session info: chrome=127.0.6533.100)
Build info: version: '4.22.0', revision: 'c5f3146703*'
System info: os.name: 'Windows 11', os.arch: 'amd64', os.version: '10.0', java.version: '17.0.5'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [7ee88e9f5578944be4c5701618041e70, clickElement {id=f.A44E470EEF563C78CB7EB2C20AEEE0FD.d.69B736146D348764B6429AEA7084995A.e.645}]
Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 127.0.6533.100, chrome: {chromedriverVersion: 127.0.6533.88 (a2d0cb026721..., userDataDir: C:\Users\MIKEWI~1\AppData\L...}, fedcm:accounts: true, goog:chromeOptions: {debuggerAddress: localhost:44066}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: windows, proxy: Proxy(), se:cdp: ws://localhost:44066/devtoo..., se:cdpVersion: 127.0.6533.100, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true}
Element: [[ChromeDriver: chrome on windows (7ee88e9f5578944be4c5701618041e70)] -> id: ctrl-reservation-reservation__cancel]
Session ID: 7ee88e9f5578944be4c5701618041e70
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Unknown Source)
	at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source)
	at org.openqa.selenium.remote.ErrorCodec.decode(ErrorCodec.java:167)
	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:138)
	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:50)
	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:190)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:518)
	at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:223)
	at org.openqa.selenium.remote.RemoteWebElement.click(RemoteWebElement.java:76)
	at jdk.internal.reflect.GeneratedMethodAccessor78.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
	at ws.palladian.nodes.selenium.SeleniumUtils$SeleniumSyncInvocationHandler.invoke(SeleniumUtils.java:45)
	at ws.palladian.nodes.selenium.SeleniumUtils$2.invoke(SeleniumUtils.java:208)
	at jdk.proxy23/jdk.proxy23.$Proxy98.click(Unknown Source)
	at ws.palladian.nodes.selenium.click3.Click3NodeFactory$ClickType.lambda$0(Click3NodeFactory.java:30)
	at ws.palladian.nodes.selenium.click3.Click3NodeFactory$ClickType.execute(Click3NodeFactory.java:43)
	at ws.palladian.nodes.selenium.click3.Click3NodeFactory$1.execMethod(Click3NodeFactory.java:72)
	at ws.palladian.nodes.selenium.AbstractWebElementMethodNodeModel.execute(AbstractWebElementMethodNodeModel.java:317)
	... 14 more

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.