【发布时间】:2018-12-26 13:31:52
【问题描述】:
[编辑:在下方添加了 Chrome 开发者视图的屏幕截图...]
我正在尝试点击这个对象:
<input type="submit" name="commit" value="Load Report" class="button" data-disable-with="Load Report">
在 UI 中,该按钮是可点击的,直到它被点击以开始报告。然后在报告加载之前将其禁用。
但是当我在代码中调用时:
driver.find_element_by_name("commit").click()
它抛出一个异常:
ElementNotVisibleException: element not interactable
(Session info: chrome=71.0.3578.98)
(Driver info: chromedriver=2.45.615355 (d5698f682d8b2742017df6c81e0bd8e6a3063189),platform=Mac OS X 10.14.0 x86_64)
所以,我很确定我找到了正确的按钮(除非有另一个名为“commit”的按钮),但由于某种原因它不可点击。它前面没有可识别的对象,但可能隐藏在 CSS 中或...?我是个一无所知的菜鸟。有什么提示吗?
【问题讨论】:
-
@PedroLobito 如果元素在不同的框架中,它会抛出一个
ElementNotFoundException。 -
你试过添加等待点击吗?可能在加载报告或需要完成某些其他操作之前单击该元素。另一种可能性是
INPUT元素永远不会变得可见,您需要找到要与之交互的可见元素。没有页面链接很难说 -
@JeffC 感谢您的 cmets。可悲的是,这是一个被密码锁定的金融系统,所以我无法分享。我将不得不尝试联系开发人员。
标签: python selenium xpath css-selectors webdriverwait