Chart and some details not loaded on selenium grid, node-chrome

I have peculiar situation, i think. When I run tests locally, the chart is rendered properly but when I run it on selenium grid locally as container in hub-node model the chart doesnt come up. I have tried most of the options and capabilities that chatgpt suggested but i guess human experience matters :slight_smile:
My settings


In network tab under source, i see the page/chart/js file which has to be rendered but it doesnt

Chart like a stock chart which gets rendered based on period selected. From Bloomberg or Factset or Reuters.

Anyone with previous experience or knowledge?

Thx!!!

The Problem Summary

  • Locally, the chart renders fine.
  • In the Dockerized Selenium Grid, the chart doesn’t render, though you can see the JS source file loaded in the Network tab.
  • This strongly suggests a rendering or graphical acceleration issue, not a missing resource.

Key Points in Your Setup

You already use many good flags like:

  • --disable-gpu
  • --no-sandbox
  • --window-size=1920,1080
  • --disable-dev-shm-usage
  • --ignore-certificate-errors

But here’s what might be missing or misconfigured:


Suggestions Based on Experience

1. Use Headed Mode (Non-Headless) for Debugging

Try disabling --headless if it’s enabled. Headless Chrome can have rendering issues (especially with canvases/charts using WebGL or SVG).

# Comment this if enabled
# options.add_argument("--headless=new")  # or "--headless"

2. Enable Software Rendering for WebGL

Charts (especially finance stock charts) often depend on WebGL. You can try:

options.add_argument("--use-gl=swiftshader")
options.add_argument("--disable-software-rasterizer")

Or also test with:

options.add_argument("--enable-webgl")

3. Increase Shared Memory

Docker containers can have trouble with Chrome unless you increase /dev/shm:

docker run --shm-size=2g ...

4. Ensure Fonts and Graphical Packages Are Installed

If the chart uses custom fonts or rendering libraries (like canvas, SVG), your container may be missing them.

Install in Dockerfile:

RUN apt-get update && apt-get install -y fonts-liberation libnss3 libxss1 libasound2 libx11-xcb1 libxcomposite1 libxcursor1 libxdamage1 libxrandr2 xdg-utils

5. Try With VNC to Visualize

To debug better, consider using a Selenium Node with VNC access so you can see what’s happening in the container.

You can use selenium/standalone-chrome-debug image, and access via port 5900.


6. Use DevTools Logs for Diagnostics

Enable logging to get more insights:

options.set_capability("goog:loggingPrefs", {"browser": "ALL", "performance": "ALL"})

Then analyze logs for rendering issues or JS exceptions.


7. Container GPU/Graphics Support

If your chart requires real GPU rendering (WebGL 2.0 or hardware-accelerated canvas), Docker might need GPU access (e.g., via nvidia-docker). In most Selenium test setups, this isn’t practical — so you want to force software fallbacks like --use-gl=swiftshader.


Final Debug Tip

If possible, serve a minimal test chart from your app and run your tests on both local and remote to isolate if the issue is:

  • JavaScript execution timing
  • Rendering context
  • Container limitations