。Selenium WebDriver「Click」和JavascriptExecutor之間的區別點擊下面兩個語句之間的執行過程區別點擊
driver.findElement(By.xpath("//input[@value='Save']")).click();
((JavascriptExecutor) driver).executeScript("arguments[0].click();", element);
。Selenium WebDriver「Click」和JavascriptExecutor之間的區別點擊下面兩個語句之間的執行過程區別點擊
driver.findElement(By.xpath("//input[@value='Save']")).click();
((JavascriptExecutor) driver).executeScript("arguments[0].click();", element);
WebDriver
click()
模擬真正的用戶與UI的交互。我將通過向瀏覽器發送本地事件來執行(在大多數瀏覽器中),並且必須可見才能點擊它。從docs
...如果點擊()通過發送本地事件(這是默認 大多數瀏覽器/平臺)
有一個元素一些先決條件完成的被點擊。該元件 必須是可見的,並且必須具有的高度和在另一方面寬度大於0
JavaScript
click()
執行的JavaScript在當前選擇的幀或 窗口的上下文。
不管WebElement
是否可見。這種方法忽略了用戶交互Selenium
試圖模擬的想法。
。 Webdriver使用本地瀏覽器事件來點擊元素,並且JavaScript使用JavaScrip來點擊元素。
如果我沒有記錯的話,Selenium 1正在使用JavaScript進行所有動作,但是他們在webdriver(Selenium 2)中改變了這一點,現在他們使用原生瀏覽器事件與瀏覽器交互。爲此,您需要瀏覽器(geckodriver,IEDriver,Chromedriver等)的相應支持。另一方面,JavaScript引擎內置在所有主流瀏覽器中,因此您不需要額外的可執行文件。