WebDriver click() vs JavaScript click()

| | | | | |

A história:

Aqui no StackOverflow, vi usuários relatando que não podem clicar em um elemento por meio do comando "click" do selenium WebDriver e podem contorná-lo com um Clique em JavaScript executando um script.

Exemplo em Python:

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

Exemplo em WebDriverJS/Protractor:

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

A pergunta:

Por que clicar em "via JavaScript" funciona quando um clique normal do WebDriver não funciona? Quando exatamente isso está acontecendo e qual é a desvantagem desta solução alternativa (se houver)?

Eu pessoalmente usei essa solução alternativa sem entender completamente por que eu fazer isso e quais problemas isso pode causar.