Skip to content

[Need support]: Selenium hub unable to findElement and is getting timed out #61

Open

Description

@deepakprasad119

Describe the problem

Hi,
Below log extract from Selenium hub
Selenium hub, unable to findElement and is getting timed out.

Need help to understand to which service endpoint the selenium hub is trying to reach out?
Backend/imitator or proxy? Because we don't define any of these addresses in Hub env as per the docker-compose.yml

2024-10-17 16:52:38.329 WARN 1 - [ttp-epoll-4] healenium : Error during findElement: org.openqa.selenium.WebDriverException: upstream request timeout\n Command duration or timeout: 15.00 seconds\n Build info: version: '4.21.0', revision: '79ed462ef4'\n System info: os.name: 'Linux', os.arch: 'amd64', os.version: '5.10.226-214.879.amzn2.x86_64', java.version: '22.0.2'\n Driver info: org.openqa.selenium.remote.RemoteWebDriver\n Command: [71881f02e4b7235f57080c405b42c788, findElement {using=css selector, value=#change_id}]\n Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 128.0.6613.119, chrome: {chromedriverVersion: 128.0.6613.119 (6e439cfca4d..., userDataDir: /tmp/.org.chromium.Chromium...}, fedcm:accounts: true, goog:chromeOptions: {debuggerAddress: localhost:9222}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: linux, proxy: {}, se:bidiEnabled: false, se:cdp: ws://172.27.79.45:4444/sess..., se:cdpVersion: 128.0.6613.119, se:containerName: , se:noVncPort: 7900, se:vnc: ws://172.27.79.45:4444/sess..., se:vncEnabled: true, se:vncLocalAddress: ws://172.27.79.45:7900, 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}\n Session ID: 71881f02e4b7235f57080c405b42c788\n at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)\n at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502)\n at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486)\n at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:221)\n at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:170)\n at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:571)\n at org.openqa.selenium.remote.ElementLocation$ElementFinder$2.findElement(ElementLocation.java:165)\n at org.openqa.selenium.remote.ElementLocation.findElement(ElementLocation.java:59)\n at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:355)\n at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:349)\n at com.epam.healenium.processor.FindElementProcessor.execute(FindElementProcessor.java:23)\n at com.epam.healenium.processor.BaseProcessor.process(BaseProcessor.java:42)\n at com.epam.healenium.handlers.proxy.BaseHandler.findElement(BaseHandler.java:63)\n at com.epam.healenium.healenium_proxy.filter.FindElementRequestGatewayFilterFactory.findElement(FindElementRequestGatewayFilterFactory.java:62)\n at com.epam.healenium.healenium_proxy.filter.FindElementRequestGatewayFilterFactory.lambda$apply$0(FindElementRequestGatewayFilterFactory.java:48)\n at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:132)\n at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107)\n at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onNext(FluxMapFuseable.java:299)\n at reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onNext(FluxFilterFuseable.java:337)\n at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097)\n at reactor.core.publisher.MonoCollect$CollectSubscriber.onComplete(MonoCollect.java:145)\n at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144)\n at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260)\n at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144)\n at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:415)\n at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:446)\n at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:818)\n at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:115)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:305)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436)\n at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346)\n at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318)\n at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:918)\n at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:799)\n at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:501)\n at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:399)\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994)\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n at java.base/java.lang.Thread.run(Thread.java:1570)\n

Healenium Web version

proxy with docker

Healenium Backend version

3.4.5

Selenium version

4.24

Platform

Java

Logs appeared during using Healenium

2024-10-17 16:52:38.329  WARN 1 - [ttp-epoll-4] healenium                        : Error during findElement:  org.openqa.selenium.WebDriverException: upstream request timeout\n Command duration or timeout: 15.00 seconds\n Build info: version: '4.21.0', revision: '79ed462ef4'\n System info: os.name: 'Linux', os.arch: 'amd64', os.version: '5.10.226-214.879.amzn2.x86_64', java.version: '22.0.2'\n Driver info: org.openqa.selenium.remote.RemoteWebDriver\n Command: [71881f02e4b7235f57080c405b42c788, findElement {using=css selector, value=#change_id}]\n Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 128.0.6613.119, chrome: {chromedriverVersion: 128.0.6613.119 (6e439cfca4d..., userDataDir: /tmp/.org.chromium.Chromium...}, fedcm:accounts: true, goog:chromeOptions: {debuggerAddress: localhost:9222}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: linux, proxy: {}, se:bidiEnabled: false, se:cdp: ws://172.27.79.45:4444/sess..., se:cdpVersion: 128.0.6613.119, se:containerName: , se:noVncPort: 7900, se:vnc: ws://172.27.79.45:4444/sess..., se:vncEnabled: true, se:vncLocalAddress: ws://172.27.79.45:7900, 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}\n Session ID: 71881f02e4b7235f57080c405b42c788\n 	at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)\n 	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502)\n 	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486)\n 	at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:221)\n 	at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:170)\n 	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:571)\n 	at org.openqa.selenium.remote.ElementLocation$ElementFinder$2.findElement(ElementLocation.java:165)\n 	at org.openqa.selenium.remote.ElementLocation.findElement(ElementLocation.java:59)\n 	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:355)\n 	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:349)\n 	at com.epam.healenium.processor.FindElementProcessor.execute(FindElementProcessor.java:23)\n 	at com.epam.healenium.processor.BaseProcessor.process(BaseProcessor.java:42)\n 	at com.epam.healenium.handlers.proxy.BaseHandler.findElement(BaseHandler.java:63)\n 	at com.epam.healenium.healenium_proxy.filter.FindElementRequestGatewayFilterFactory.findElement(FindElementRequestGatewayFilterFactory.java:62)\n 	at com.epam.healenium.healenium_proxy.filter.FindElementRequestGatewayFilterFactory.lambda$apply$0(FindElementRequestGatewayFilterFactory.java:48)\n 	at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:132)\n 	at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107)\n 	at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onNext(FluxMapFuseable.java:299)\n 	at reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onNext(FluxFilterFuseable.java:337)\n 	at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097)\n 	at reactor.core.publisher.MonoCollect$CollectSubscriber.onComplete(MonoCollect.java:145)\n 	at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144)\n 	at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260)\n 	at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144)\n 	at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:415)\n 	at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:446)\n 	at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:818)\n 	at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:115)\n 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n 	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n 	at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:305)\n 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)\n 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n 	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n 	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436)\n 	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346)\n 	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318)\n 	at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251)\n 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)\n 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n 	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n 	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407)\n 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n 	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:918)\n 	at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:799)\n 	at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:501)\n 	at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:399)\n 	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994)\n 	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n 	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n 	at java.base/java.lang.Thread.run(Thread.java:1570)\n

Additional context

The whole setup is running on AWS ECS Fargate. ECS Service connect is being used for service communication.

Activity

  1. Alex-Reif commented on Oct 17, 2024

    @Alex-Reif
    Contributor

    Hi @deepakprasad119 ,
    Client create RemoteWebDriver with specified hlm-proxy url.
    Client -> proxy -> selenium server
    https://healenium.io/docs/overview

  2. deepakprasad119 commented on Oct 18, 2024

    @deepakprasad119
    Author

    Hi @Alex-Reif

    1. Going by the diagram in https://healenium.io/docs/overview
      the below reverse flow is also true?

    Selenium Server -> Proxy -> Client

    1. I'm trying to understand the flow during the healing ?

    Selenium Server -> Proxy -> Backend > Database > ..?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

help wantedExtra attention is needed

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions