当前位置: 首页 > 面试题库 >

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

晏树
2023-03-14
问题内容

当页面使用AJAX时可以使用隐式和显式等待,但是我想停止由于加载driver.get()足够的元素而导致的加载。因为driver.get()调用仅在页面加载完成后才返回,所以可以这样做吗?


问题答案:

是的,可以通过将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? 临时解决方案:滚动下方获取答案!

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

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

  • 无法在WebView中加载以下网页 https://6awlanow.com/about/faqs 到目前为止,我一直在努力- 我已经提供了互联网许可。除了在WebView上,URL在任何地方都可以正常加载。我得到以下错误- 在我的控制台上获取以下信息-