WebDriver click() vs. JavaScript click()

| | | | | |

Die Geschichte:

Hier auf StackOverflow habe ich gesehen, wie Benutzer berichteten, dass sie mit dem Selenium WebDriver-Klickbefehl nicht auf ein Element klicken können und dies mit einem umgehen können JavaScript-Klick durch Ausführen eines Skripts.

Beispiel in Python:

element = driver.find_element_by_id("myid") driver.execute_script("arguments[0].click( );", element) 

Beispiel in WebDriverJS/Protractor:

var elm = $("#myid"); browser.executeScript("arguments [0].click();", elm.getWebElement()); 

Die Frage:

Warum ist das Klicken auf "via JavaScript" funktioniert, wenn ein normaler WebDriver-Klick nicht funktioniert? Wann genau passiert das und was ist der Nachteil dieser Problemumgehung (falls vorhanden)?

Ich persönlich habe diese Problemumgehung verwendet, ohne vollständig zu verstehen, warum ich das getan habe zu tun und zu welchen Problemen es führen kann.