-
-
Notifications
You must be signed in to change notification settings - Fork 184
Closed
Description
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();
}
}Metadata
Metadata
Assignees
Labels
No labels