WebDriver click() против JavaScript click()

| | | | | |

История:

Здесь, на StackOverflow, я видел, как пользователи сообщали, что они не могут щелкнуть элемент с помощью команды selenium WebDriver "click" и могут обойти это с помощью Нажмите JavaScript, выполнив скрипт.

Пример на Python:

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

Пример в WebDriverJS/Protractor:

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

Вопрос:

Почему щелкает "через JavaScript" работает, когда обычный щелчок WebDriver не работает? Когда именно это происходит и каковы недостатки этого обходного пути (если таковые имеются)?

Я лично использовал этот обходной путь, не полностью понимая, почему у меня сделать это и к каким проблемам это может привести.