u/SeleniumVBA_user

▲ 13 r/vba

SeleniumVBA and SeleniumBasic are separate projects

In many older articles on the Web, SeleniumBasic is simply referred to as “Selenium VBA” or “VBA Selenium.” This is one of the main reasons for the confusion that still exists today.

SeleniumBasic appeared at a time when there were very few options available for automating browsers from VBA. Being able to control a browser directly from Excel had significant value. As a result, a large amount of information accumulated across blogs, Stack Overflow, Q&A sites, and other sources.

Search engines, generative AI, and AI-powered search systems also rely on existing information published on the Web, so they are inevitably influenced by this historical accumulation of content. This is why, even today, you may still encounter answers such as “If you want to use Selenium with VBA, use SeleniumBasic.”

For its time, SeleniumBasic was a highly polished and valuable tool. It provided an environment for using Selenium from Excel, Access, VBScript, and other applications. It also played an important role in helping many VBA users move away from Internet Explorer-dependent automation toward WebDriver-based browser automation — in other words, Selenium.

However, according to the official CHANGELOG, the latest SeleniumBasic release, v2.0.9.0, was published on March 2, 2016.

The important point here is not that “it is bad because it was made in 2016.” The real issue is that browsers and WebDriver have changed significantly during the ten years since then.

Chrome and Edge have continued to evolve. Selenium has evolved as well. The standardized W3C WebDriver protocol became the foundation of Selenium 4, and technologies and features that were not commonly used at the time — such as CDP integration, Shadow DOM support, automatic WebDriver management, and WebDriver BiDi — have become increasingly important.

In addition, SeleniumBasic depends on .NET Framework 3.5. Microsoft has announced the end of support for .NET Framework 3.5 in January 2029 and has gradually been moving toward tighter restrictions and a long-term phase-out.

Considering these changes, I expect the broad interpretation of

“SeleniumVBA = a VBA tool that uses Selenium = SeleniumBasic”

to gradually become less common.

The more important concern, however, is that users who were unable to achieve what they needed with SeleniumBasic may simply give up on browser automation with VBA without realizing that there is another option — SeleniumVBA, which can provide advanced and practical browser automation capabilities without requiring an installer.

reddit.com
u/SeleniumVBA_user — 12 days ago
▲ 4 r/vba

[Updated] WebDriver BiDi for SeleniumVBA

Hi everyone,

I have been developing an open-source project called WebDriver BiDi for SeleniumVBA.

It is a WebDriver BiDi client and automation wrapper designed to let Excel VBA work with modern web applications without requiring .NET, Python, or Node.js.

GitHub:

https://github.com/hanamichi77777/WebDriver-BiDi-for-SeleniumVBA

Why I created it

Traditional Selenium-style commands are often sufficient for simple pages, but modern SPAs can be difficult to automate reliably.

A click may return successfully while the application is still:

  • processing Fetch or XHR requests,
  • replacing DOM elements,
  • rendering content asynchronously,
  • recreating browsing contexts or JavaScript realms,
  • or updating components inside Shadow DOM.

For this reason, the project focuses not only on sending browser commands, but also on observing what happens after each operation.

Main features

  • Direct WebDriver BiDi communication from VBA
  • WebSocket communication implemented with Windows APIs(WinSock)
  • Chrome and Edge support(Note: Firefox is not supported.)
  • SPA synchronization using network activity, DOM mutations, Fetch/XHR activity, and stability windows
  • Shadow DOM clicking and input
  • Automatic recovery when the SPA observation probe is lost during navigation
  • Resource blocking for ads, analytics, fonts, and other unnecessary requests
  • WebDriver BiDi webExtension.install support
  • Detailed request, response, heartbeat, recovery, and SPA activity logs
  • A Discovery Log for analyzing unknown third-party SPA behavior

The Discovery Log is particularly useful when a site does not expose a clear “ready” or “completed” state.

It records network responses, DOM mutation bursts, ignored background noise, and stability timing. The resulting log can also be provided to an AI assistant to help identify useful completion signals, noise filters, and safer waiting conditions.

Example scenarios

I have tested the project with applications such as:

  • Google Flights
  • ServiceNow
  • dynamically rendered scraping test sites
  • pages using nested Shadow DOM
  • Chrome extension installation through WebDriver BiDi

For example, the Google Flights demo performs destination selection, calendar interaction, date selection, and flight-result synchronization while observing both network and DOM activity.

Reliability design

One of the difficult parts was retry behavior.

When a browser command times out, the action may already have succeeded in the browser. Automatically repeating a click or input could therefore cause a duplicate operation.

The wrapper distinguishes between:

  • operations that are safe to retry,
  • transient context or realm failures,
  • and ambiguous outcomes where automatic retry should be stopped.

The goal is to improve recovery without hiding failures or accidentally executing state-changing operations twice.

VirusTotal Scan Results

WebDriver BiDi for SeleniumVBA v2.9 was scanned by VirusTotal on July 20, 2026, and received 0 detections from 64 security vendors at the time of testing.

u/SeleniumVBA_user — 1 month ago
▲ 13 r/vba

WebDriver BiDi for SeleniumVBA

Hi everyone,

I’ve created a new tool built upon SeleniumVBA(@GCuser99) that extends it to enable WebDriver BiDi via WebSocket communication.

🎥Watch the demo video of it in action here (This shows a fully dynamic SPA like Google Flights being completely driven and automated using nothing but VBA!)

🚀 Why I built this

The primary purpose of this project is to seamlessly support and scrape dynamic Single Page Application (SPA) sites, such as Google Flights, which traditionally pose a challenge for standard scraping methods.

💥 The Mission

My goal is to shatter the preconceived notion—often held by AI and modern developers—that scraping dynamic sites like SPAs is too difficult or impossible to achieve with VBA. I want to prove that VBA still has a lot of hidden potential!

🔗 Check it out here:

WebDriver BiDi for SeleniumVBA

u/SeleniumVBA_user — 3 months ago