当前位置: 首页 > 知识库问答 >
问题:

Selenium+Python:当某个元素加载时如何停止页面加载?

芮立果
2023-03-14

当页面使用AJAX时,可以使用隐式和显式等待,但是当加载了足够的元素时,我希望停止由driver.get()引起的加载。是否可以这样做,因为driver.get()调用仅在页面加载完成时才返回。

共有1个答案

颜高朗
2023-03-14

是的,可以将PageLoadStrategy功能设置为None。然后等待元素出现,并调用window.stop停止加载:

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

capa = DesiredCapabilities.CHROME
capa["pageLoadStrategy"] = "none"

driver = webdriver.Chrome(desired_capabilities=capa)
wait = WebDriverWait(driver, 20)

driver.get('http://stackoverflow.com/')

wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '#h-top-questions')))

driver.execute_script("window.stop();")
 类似资料:
  • 问题内容: 当页面使用AJAX时可以使用隐式和显式等待,但是我想停止由于加载足够的元素而导致的加载。因为调用仅在页面加载完成后才返回,所以可以这样做吗? 问题答案: 是的,可以通过将功能设置为来实现。然后等待一个元素出现并调用以停止加载:

  • 我正在刮一个网站,出于某种原因需要15秒加载,但我需要的元素在前5秒加载。 null 我能做点什么吗?谢谢你。

  • 如果预期的元素已经存在,我如何使Selenium继续下一个任务或停止加载外部JavaScript/CSS? 临时解决方案:滚动下方获取答案!

  • 我使用Python 3和Selenium来自动化浏览器活动。在我正在工作的页面上,我有一个按钮,当点击时,它会加载一个下拉菜单。然而,在检查时,我相信下拉框是在点击按钮后生成的,因为我没有看到页面加载菜单的html。 我正在使用以下代码 html 这个菜单大概是通过JS加载的,我试图点击的按钮是文本帐户 这将加载网站,并单击下拉菜单。我在下拉菜单中看到按钮加载,我正试图让浏览器单击该按钮,但它从未

  • 我经常遇到Selenium的问题,脚本崩溃,因为我想访问尚未加载的元素。 目前我是这样做的,我在这些地方之前放了一个,但有时需要更长或更短的时间才能加载元素。 有没有办法等到元素加载完毕,一旦加载,立即继续执行其余的代码?

  • 问题内容: 从这个链接,我假设首先应该将DOM整体加载到RAM中。 OM如何工作/如何加载?(以HTML格式) 但是后来我在Selenium中测试了超时异常。似乎甚至引发了超时异常,已经可以找到一些元素,因此它不是一个空对象。 但是我想知道,如何确保某些元素已经加载?例如HTML示例,如何确定所有元素都已加载?鉴于我实际上并不知道元素的数量。 代码试用: HTML示例: 问题答案: 根据你的代码试