Cliquez WebDriver () vs clic JavaScript ()

| | | | | |

L'histoire :

Ici, sur StackOverflow, j'ai vu des utilisateurs signaler qu'ils ne peuvent pas cliquer sur un élément via la commande Selenium WebDriver "click" et peuvent le contourner avec un Cliquez sur JavaScript en exécutant un script.

Exemple en Python :

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

Exemple dans WebDriverJS/Protractor :

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

La question :

Pourquoi cliquer sur "via JavaScript" fonctionne lorsqu'un clic WebDriver normal ne fonctionne pas ? Quand exactement cela se produit-il et quel est l'inconvénient de cette solution de contournement (le cas échéant) ?

J'ai personnellement utilisé cette solution de contournement sans comprendre pleinement pourquoi j'ai pour le faire et quels problèmes cela peut entraîner.