解决selenium的getdrive()方法阻塞问题
- selenium里面的Webdriver的get()方法默认是阻塞的,也就是说要等整个页面全都加载完它才会相应。
- 但我们大部分时候不需要用到页面里的所有东西,也许只需要用到里面的一个元素就行了
所以下面是我的解决方法:
初始化代码:
# 设置driver.get()非阻塞
option = webdriver.ChromeOptions()
option.page_load_strategy = 'none' # 设置 pageLoadStrategy 为 "none" (也就是非阻塞)
driver = webdriver.Chrome(options=option)
driver.get("https://baidu.com") # 替换你的目标网站
- 那么问题来了,设置为非阻塞确实能大大节约时间,但有可能你想要的网页上的那个元素还没加载出来,他就给你继续做下面的操作了,这怎么办。
我的解决方法是:用while循环判断找到符合条件元素的个数。如果是0,那就继续找;如果非0,就表明找到了,就可以跳出循环,做接下来的操作了。
代码:
while True:elem = driver.find_elements(By.XPATH, xpath)print('cnt :', len(elem))if len(elem) > 0:elem = elem[0]break# 找到元素,跳出循环后,做你接下来的事情
当然我也是刚了解selenium这个库,这里提供给各位一个思路,如果各位有更好的思路欢迎在评论区跟我交流 : )
相关文章:
解决selenium的getdrive()方法阻塞问题
selenium里面的Webdriver的get()方法默认是阻塞的,也就是说要等整个页面全都加载完它才会相应。但我们大部分时候不需要用到页面里的所有东西,也许只需要用到里面的一个元素就行了 所以下面是我的解决方法: 初始化代码: # 设置…...
js的闭包
闭包是有权限访问其他函数作用域的局部变量的一个函数 代码 function outer(){const a1;function f(){console.log(a)}f()}outer() 简单来说:闭包内层函数引用的外层函数变量 为什么要使用闭包? 用此方法可以来统计函数调用次数, 但是如…...
ubuntu20.04 直接安装vpp23.06 测试双 VPP Tunnel Ike2
环境信息:VMware Workstation 17 Pro ubuntu20.04 (清华源) ubuntu 源点进去选:ubuntu-22.04.3-desktop-amd64.iso 如果之前装过VPP,用以下命令确定是否卸载干净: dpkg -l | grep vpp dpkg -l | grep DPDK 卸载: …...
mysql sql 执行流程
监控查询缓存的命中率 show status like ‘%qcache%’; mysql 缓存机制,以及 8.0 为啥取消 select sql_NO_Cache * from 表 where xxx; # 不使用缓存...
go-kafka
go kafka包 本文使用的是kafka-go 6.5k 这个包 其他包参考: 我们在细分市场中非常依赖GO和Kafka。不幸的是,在撰写本文时,Kafka的GO客户库的状态并不理想。可用选项是: 萨拉玛(Sarama) 10k,这…...
如何在windows电脑上安装多个node,并可以进行随意切换
一、进入官网http://nvm.uihtm.com/ 下载 二、启动解压后的程序 1.开始安装nvm 选择要安装的目录 一直下一步–下一步–最后点击完成 3.最后点击完成即可  {$file $request->file(attachment);/*echo count($file);dd($file);*/$filenam…...
边写代码边学习之Bidirectional LSTM
1. 什么是Bidirectional LSTM 双向 LSTM (BiLSTM) 是一种主要用于自然语言处理的循环神经网络。 与标准 LSTM 不同,输入是双向流动的,并且它能够利用双方的信息。 它也是一个强大的工具,可以在序列的两个方向上对单词和短语之间的顺序依赖…...
Django学习笔记-实现联机对战
笔记内容转载自 AcWing 的 Django 框架课讲义,课程链接:AcWing Django 框架课。 CONTENTS 1. 统一长度单位2. 增加联机对战模式3. 配置Django Channels 1. 统一长度单位 多人模式中每个玩家所看到的地图相对来说应该是一样的,因此需要固定地…...
nacos总结1
5.Nacos注册中心 国内公司一般都推崇阿里巴巴的技术,比如注册中心,SpringCloudAlibaba也推出了一个名为Nacos的注册中心。 5.1.认识和安装Nacos Nacos是阿里巴巴的产品,现在是SpringCloud中的一个组件。相比Eureka功能更加丰富,…...
Web安全测试(三):SQL注入漏洞
一、前言 结合内部资料,与安全渗透部门同事合力整理的安全测试相关资料教程,全方位涵盖电商、支付、金融、网络、数据库等领域的安全测试,覆盖Web、APP、中间件、内外网、Linux、Windows多个平台。学完后一定能成为安全大佬! 全部…...
Webstorm 入门级玩转uni-app 项目-微信小程序+移动端项目方案
1. Webstorm uni-app语法插件 : Uniapp Support Uniapp Support - IntelliJ IDEs Plugin | Marketplace 第一个是不收费,第二个收费 我选择了第二个Uniapp Support ,有试用30天,安装重启webstorm之后,可以提高生产率…...
从零开始的Hadoop学习(三)| 集群分发脚本xsync
1. Hadoop目录结构 bin目录:存放对Hadoop相关服务(hdfs,yarn,mapred)进行操作的脚本etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件lib目录:存放Hadoop的本地库(对…...
golang http transport源码分析
golang http transport源码分析 前言 Golang http库在日常开发中使用会很多。这里通过一个demo例子出发,从源码角度梳理golang http库底层的数据结构以及大致的调用流程 例子 package mainimport ("fmt""net/http""net/url""…...
spring boot 项目整合 websocket
1.业务背景 负责的项目有一个搜索功能,搜索的范围几乎是全表扫,且数据源类型贼多。目前对搜索的数据量量级未知,但肯定不会太少,不仅需要搜索还得点击下载文件。 关于搜索这块类型 众多,未了避免有个别极大数据源影响整…...
统计学补充概念-17-线性决策边界
概念 线性决策边界是一个用于分类问题的线性超平面,可以将不同类别的样本分开。在二维空间中,线性决策边界是一条直线,将两个不同类别的样本分隔开来。对于更高维的数据,决策边界可能是一个超平面。 线性决策边界的一般形式可以表…...
指针变量、指针常量与常量指针的区别
指针变量、指针常量与常量指针 一、指针变量 定义:指针变量是指存放地址的变量,其值是地址。 一般格式:基类型 指针变量名;(int p) 关键点: 1、int * 表示一种指针类型(此处指int 类型),p(变量…...
mq与mqtt的关系
文章目录 mqtt 与 mq的区别mqtt 与 mq的详细区别传统消息队列RocketMQ和微消息队列MQTT对比:MQ与RPC的区别 mqtt 与 mq的区别 mqtt:一种通信协议,规范 MQ:一种通信通道(方式),也叫消息队列 MQ…...
代码大全阅读随笔 (二)
软件设计 设计就是把需求分析和编码调试连在一起的活动。 设计不是在谁的头脑中直接跳出来了,他是不断的设计评估,非正式讨论,写实验代码以及修改实验代码中演化和完善。 作为软件开发人员,我们不应该试着在同一时间把整个程序都塞…...
Linux驱动开发实战:从设备树到内核调试全解析
Linux驱动工程师实战经验分享:从入门到进阶的技术要点解析1. 设备树系统的深入理解1.1 设备树的基本概念在Linux驱动开发初期,大多数工程师都是从最简单的模块开发开始。典型的入门流程包括:#include <linux/module.h> #include <li…...
Umi-OCR插件技术方案:5款引擎深度对比与实战配置指南
Umi-OCR插件技术方案:5款引擎深度对比与实战配置指南 【免费下载链接】Umi-OCR_plugins Umi-OCR 插件库 项目地址: https://gitcode.com/gh_mirrors/um/Umi-OCR_plugins Umi-OCR插件库为开源OCR工具提供了丰富的引擎选择,从本地CPU加速到云端AI识…...
3分钟掌握Umi-OCR插件:打造你的专属文字识别工具箱
3分钟掌握Umi-OCR插件:打造你的专属文字识别工具箱 【免费下载链接】Umi-OCR_plugins Umi-OCR 插件库 项目地址: https://gitcode.com/gh_mirrors/um/Umi-OCR_plugins 还在为不同场景下的文字识别需求而烦恼吗?Umi-OCR插件库为你提供了完美的解决…...
技术突破:抖音下载工具的全流程实战指南
技术突破:抖音下载工具的全流程实战指南 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 在数字内容爆炸的时代,高效获取和管理短视频资源已成为创作者、研究者和普通用户的核心需求。…...
Claude官方Skills推荐
Claude官方skills仓库提供了17个skills### 创意设计类 (5个) #### 1. algorithmic-art - 算法艺术生成器**一句话简介**:使用 p5.js 创建带种子随机数和参数探索的算法艺术 **触发条件**:代码艺术、生成艺术、算法艺术、流场、粒子系统#### 2. canvas-de…...
4重防护构建安卓安全屏障:APKMirror应用管理全攻略
4重防护构建安卓安全屏障:APKMirror应用管理全攻略 【免费下载链接】APKMirror 项目地址: https://gitcode.com/gh_mirrors/ap/APKMirror 在安卓应用下载的数字丛林中,恶意软件如同潜伏的猎手,时刻准备利用用户对新版本的渴望发起攻击…...
深度剖析:synchronized 底层实现原理(JVM 视角)
一、Java对象内存布局的深度拆解原文提到了对象头,这里补充64位JVM的完整对象布局和对齐填充的底层原因。1.1 64位JVM的完整对象结构text┌─────────────────────────────────────────────┐ │ 对象头…...
快充、便携、安全兼备,Anker能量盒到底香不香?
随着无线互联网时代的到来,移动设备的续航问题成为人们的新烦恼。无论是频繁出差、旅行,还是移动办公,充电宝几乎已经成为随身必备的装备。 然而,传统充电宝往往存在充电速度慢、体积笨重、功能单一,甚至安全认证不完善…...
手把手教你用深信服备份系统做整机恢复:从PXE到U盘启动的保姆级避坑指南
深信服整机恢复实战:PXE与U盘启动的深度避坑手册 当服务器突然宕机,硬盘彻底损坏时,整机恢复能力就是IT工程师的救命稻草。深信服备份系统的裸机恢复功能,能在没有操作系统的"裸机"上直接还原整个系统环境——但实际操作…...
Hugging Face Hub下载模型文件:hf_hub_download vs snapshot_download保姆级对比指南
Hugging Face Hub模型下载实战指南:hf_hub_download与snapshot_download深度解析 当你第一次在Python项目中集成Hugging Face模型时,是否曾被这两个看似相似的下载函数困扰过?作为Hugging Face生态中最常用的两个下载工具,hf_hub_…...
