Python2.7 Selenium,在页面处于';不能满载

Python2.7 Selenium,在页面处于';不能满载,python,python-2.7,selenium,click,element,Python,Python 2.7,Selenium,Click,Element,当页面未完全加载但元素已加载/可见时,是否可以单击元素?如果是,那怎么办?如果没有,那么还有其他解决方案吗?从技术上讲,您可以设置一个明确的等待,目标是“所在元素的存在”或“所在元素的可见性”条件。但是请记住,通过单击元素激发的操作可以通过多种方式绑定,其中一些可以在dom准备就绪后发生(当加载完整的dom时,尽管尚未完全呈现) 想想这些场景: 元素有一个触发javascript函数的“onClick”属性:在这种情况下,操作可以在完全加载之前发生(但前提是它不涉及尚未呈现的元素) 元素是一个带

当页面未完全加载但元素已加载/可见时,是否可以单击元素?如果是,那怎么办?如果没有,那么还有其他解决方案吗?

从技术上讲,您可以设置一个明确的等待,目标是“所在元素的存在”或“所在元素的可见性”条件。但是请记住,通过单击元素激发的操作可以通过多种方式绑定,其中一些可以在dom准备就绪后发生(当加载完整的dom时,尽管尚未完全呈现)

想想这些场景:

  • 元素有一个触发javascript函数的“onClick”属性:在这种情况下,操作可以在完全加载之前发生(但前提是它不涉及尚未呈现的元素)
  • 元素是一个带有“href”属性的锚点,其中包含一个普通url:在这种情况下,我认为在完成加载之前单击是非常安全的
  • 元素在某个时候有一个通过javascript绑定的操作:在这种情况下,您应该检查js代码,以确保元素在单击它时已经绑定了该操作

  • 你能写一段示例代码吗?您将如何编写显式等待?假设我想点击
    驱动程序。在不等待页面完全加载的情况下,通过\u id('a')
    查找\u元素。假设元素是一个带有“href”属性的锚点。也许我有点仓促:我忘了说selenium,对于url的每个“get”,都会等待DOM准备好,然后将控件返回到脚本。考虑到这一点,如果您正在处理的网站中的锚在初始DOM之后没有加载(即通过ajax调用或任何其他客户端DOM操作),我认为不可能实现您想要的。抱歉。好吧,实际的网站加载速度很快,大约6000毫秒就可以使用,但驱动程序会等到从加载到加载的广告加载速度非常慢。这改变了很多情况:如果你的问题与加载广告等不需要的内容有关,我建议切换到Firefox或Chrome(如果你还没有这样做)并安装一个ad块扩展以防止它们加载。如果你的脚本是针对一个特定的网站,你可以改进算法的扩展,以阻止每一个单一的广告在该网站上。