Firefox上正常運行的腳本在chrome上提示Element is not clickable at point (1096, 26).分析原因,首先肯定不是因為頁面元素不存在而無法點擊。也不是要點擊的button不在預覽范圍內。
后來發現,是被前一步的操作的一個彈出層擋住了。因為前幾步是彈出了一個modal,在關閉modal的時候webdriver就立刻執行下一步點擊某個link,而這時modal可能還沒完全關閉掉。
解決辦法是等待那個彈出層完全關閉掉,link可以點擊的時候再執行
WebDriverWait wait = new WebDriverWait(driver, 15); wait.until(ExpectedConditions.elementToBeClickable(By.id("ID of the element")));//等待直到定位的元素可以點擊 打算用上面的方法來解決,結果坑爹的不起作用,實在鬧不明白為啥不起作用。 最后直接在兩步之間加了個簡單的thread.sleep(2000)命令解決了··· 至於為啥FF上可以正常運行,就不清楚了··可能selenium支持的更好些吧
另外一種情況是元素在視圖之外,可以用調用JS這種方法解決,不過還沒嘗試,做個記錄:
(JavascriptExecutor) driver).executeScript( "arguments[0].scrollIntoView(true);", webElement);
webElement.click();