WebDriver click() vs JavaScript click()

| | | | | |

La storia:

Qui su StackOverflow, ho visto utenti che segnalano che non possono fare clic su un elemento tramite il comando "clic" di selenium WebDriver e possono aggirarlo con un Fare clic su JavaScript eseguendo uno script.

Esempio in Python:

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

Esempio in WebDriverJS/Protractor:

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

La domanda:

Perché fare clic su "via JavaScript" funziona quando un normale clic di WebDriver non funziona? Quando sta accadendo esattamente e qual è lo svantaggio di questa soluzione alternativa (se presente)?

Ho usato personalmente questa soluzione alternativa senza comprendere appieno il motivo per cui l'ho per farlo e quali problemi può portare.