WebDriver click() 與 JavaScript click()

| | | | | |

故事:

在 StackOverflow 上,我看到用戶報告說他們無法通過 selenium WebDriver“單擊”命令單擊元素,並且可以使用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()); 

問題:

為什麼點擊“via JavaScript”在常規 WebDriver 點擊不起作用時有效?這到底是什麼時候發生的,這種解決方法的缺點是什麼(如果有的話)?

我個人使用了這種解決方法,但沒有完全理解為什麼我有這樣做以及它可能導致什麼問題。