1. Firefox上運行腳本時提示“WebDriverException: Message: Element is not clickable at point (934.316650390625, 700.316650390625). Other element would receive the click:”
2.分析原因:
(1)首先肯定不是因為頁面元素不存在而無法點擊,也不是要點擊的button不在預覽范圍內。
(2)可能是被前一步的操作的一個彈出層擋住了。因為前幾步是彈出了一個modal,在關閉modal的時候webdriver就立刻執行下一步點擊某個link,而這時modal可能還沒完全關閉掉。
解決辦法是等待那個彈出層完全關閉掉,link可以點擊的時候再執行利用類庫中的‘WebDriverWait’方法,
java中語法:
WebDriverWait wait = new WebDriverWait(driver, 15);
wait.until(ExpectedConditions.elementToBeClickable(By.id("ID of the element")));//等待直到定位的元素可以點擊 打算用上面的方法來解決
結果坑爹的不起作用,實在鬧不明白為啥不起作用。 最后直接在兩步之間加了個簡單的thread.sleep(2000)命令解決了
python中語法:
element = WebDriverWait(driver,3,0.5).until(EC.presence_of_element_located((By.ID,"saveNewFormId")))
element.find_element_by_id("saveNewFormId").click()
結果也解決了問題,··· 至於為啥可能selenium支持的更好些吧
(3)另外一種情況是元素在視圖之外,可以用調用JS這種方法解決,不過還沒嘗試,做個記錄:
(JavascriptExecutor) driver).executeScript( "arguments[0].scrollIntoView(true);", webElement);
webElement.click();
(4)我能想到的就這幾個原因了,希望有別的解決方法的同仁能補充一下,更好的幫助后來者解決問題,謝謝!
(TestYao編輯於2016年3月31日晚)
