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日晚)