Got another issue for you, test case in hand :)
When clicking via Selenium + Htmlunit only the click javascript event triggers, but doing the same in Firefox triggers mouse up, down and click.
The test case I tried:
class HtmlUnitClickTest { private WebDriver ffDriver; private WebDriver huDriver; private final static String buttonPage = "<button id=\"testButton\">Click me</button>\n" + "<div id=\"logArea\"></div>\n" + "<script>\n" + " const button = document.getElementById('testButton');\n" + " const div = document.getElementById('logArea');\n" + "\n" + " button.addEventListener('mousedown', e => {\n" + " console.log('up');\n" + " div.innerHTML += \"up \";\n" + " });\n" + " button.addEventListener('mouseup', e => {\n" + " console.log('down');\n" + " div.innerHTML += \"down \";\n" + " });\n" + " button.addEventListener('click', e => {\n" + " console.log('click');\n" + " div.innerHTML += \"click \";\n" + " });\n" + "\n" + "\n" + "</script>"; @BeforeEach void initDrivers() { System.setProperty("webdriver.gecko.driver", "c:\\path\\geckodriver.exe"); FirefoxOptions options = new FirefoxOptions(); options.setLogLevel(FirefoxDriverLogLevel.FATAL); ffDriver = new FirefoxDriver(options); huDriver = new HtmlUnitDriver(BrowserVersion.FIREFOX, true) { @Override protected WebClient modifyWebClient(WebClient client) { final WebClient webClient = super.modifyWebClient(client); WebClientOptions options = webClient.getOptions(); options.setCssEnabled(true); options.setThrowExceptionOnScriptError(false); webClient.setJavaScriptErrorListener(new SilentJavaScriptErrorListener()); return webClient; } }; } @AfterEach void closeDrivers(){ ffDriver.close(); huDriver.close(); } @Test void givenFFandHtmlUnit_whenClicking_registerThreeEvents() { Assertions.assertEquals(testClicks(ffDriver), testClicks(huDriver)); } private String testClicks(WebDriver driver) { driver.get("data:text/html;charset=utf-8," + buttonPage); driver.findElement(By.id("testButton")).click(); return driver.findElement(By.id("logArea")).getText(); } }