Selenium 页面加载策略

news/2024/10/18 19:25:14/

共有三种类型的页面加载策略.

页面加载策略可以在此链接查询 document.readyState , 如下表所述:

策略就绪状态备注
normalcomplete默认值, 等待所有资源下载
eagerinteractiveDOM 访问已准备就绪, 但诸如图像的其他资源可能仍在加载
noneAny完全不会阻塞 WebDriver

 

文档的 document.readyState 属性描述当前文档的加载状态。

当通过URL导航到新页面时, 默认情况下, WebDriver将暂缓完成导航方法 (例如, driver.navigate().get())直到文档就绪状态完成. 这 并非意味着该页面已完成加载, 特别是对于使用 JavaScript 在就绪状态返回完成后 动态加载内容单页应用程序的站点. 另请注意此行为不适用于单击元素或提交表单后出现的导航行为。

如果由于下载对自动化不重要的资源(例如, 图像、css、js) 而需要很长时间才能加载页面, 您可以将默认参数normal更改为 eager 或 none 以加快会话加载速度. 此值适用于整个会话, 因此请确保您的 等待策略 足够普适。

normal (默认值)

WebDriver一直等到 load 事件触发并返回。

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.page_load_strategy = 'normal'
driver = webdriver.Chrome(options=options)
driver.get("http://www.google.com")
driver.quit()

eager

WebDriver一直等到 DOMContentLoaded 事件触发并返回。

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.page_load_strategy = 'eager'
driver = webdriver.Chrome(options=options)
driver.get("http://www.google.com")
driver.quit()

none

WebDriver 仅等待初始页面已下载。

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.page_load_strategy = 'none'
driver = webdriver.Chrome(options=options)
driver.get("http://www.google.com")
driver.quit()


http://www.ppmy.cn/news/157553.html

相关文章

C++基础编程

1 C初识 1.1 第一个C程序 #include<iostream> using namespace std;int main() {cout << "Hello world" << endl;system("pause");return 0; }1.2 注释 作用&#xff1a;在代码中加一些说明和解释&#xff0c;方便自己或其他程序员程…

设计模式第二天(创建型模式)

1.抽象工厂设计模式 定义了一个接口用于创建相关或有依赖关系的对象族&#xff0c;而无需明确指定具体类public interface AbsFactory{Pizza createPizza(String ordertype) }public class LDFactory implement AbsFactory{Overrriedpublic createPizza(String orderType){Piz…

【STM32H7】第8章 学习USB协议栈前要了解的基础知识

论坛原始地址&#xff08;持续更新&#xff09;&#xff1a;http://www.armbbs.cn/forum.php?modviewthread&tid99710 第8章 学习USB协议栈前要了解的基础知识 本章节为大家讲解USB基础知识点&#xff0c;学习USB前&#xff0c;非常有必要有个系统的认识。 目录 第8…

rca接口_从模拟接口到8K传输 显卡接口这些年变得太多

[PConline硬件编年史]在英伟达RTX30系列显卡发售前夕&#xff0c;我们将和跟大家一起回顾一下显卡史上的一些有趣内容&#xff0c;这一期我们首先来聊聊显卡视频输出接口的发展。 显卡上的视频输出接口的发展主要就是为了匹配显卡输出性能的提升&#xff0c;从最开始的240P和灰…

简易操作系统OS方案规划

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、二进制计算机发展史&#xff08;网上摘抄&#xff09;二、AOS方案规划 1、简化Linux代码量2、IPC消息包结构3、多核处理器256位内部总线和APIC三、CPU规划 …

设计模式——23种全

设计模式的分类 总体来说设计模式分为三大类 创建型模式&#xff0c;共五种&#xff1a;工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式&#xff0c;共七种&#xff1a;适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式…

2021-03-19

转载自&#xff1a;https://blog.csdn.net/A1342772/article/details/91349142 设计模式的分类 总体来说设计模式分为三大类&#xff1a; 创建型模式&#xff0c;共五种&#xff1a;工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式&#xff0c;共七…

【STM32H7】第4章 ThreadX USBX协议栈基础知识

教程更新中&#xff1a;http://www.armbbs.cn/forum.php?modviewthread&tid108546 第4章 ThreadX USBX协议栈基础知识 本章节为大家讲解USB基础知识点&#xff0c;学习USB前&#xff0c;非常有必要有个系统的认识。 目录 4.1 初学者重要提示 4.2 USB历史 4.3 …