当前位置: 首页 > news >正文

python+selenium实现web自动化(基础入门)

selenium 是一个自动化操控工具,支持对web端进行自动化操控,从而实现自动化测试。

相关文档:

  • https://python-selenium-zh.readthedocs.io/zh-cn/latest/
  • https://www.selenium.dev/documentation/

安装配置

环境依赖:

  • python3.7+

安装:

$ pip install selenium

使用

基本使用示例:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service# chrome 启动参数
chrome_options = Options()
# 禁用浏览器正在被自动化程序控制的提示
chrome_options.add_experimental_option('excludeSwitches', ['enable-automation', 'enable-logging'])# 启动
driver = webdriver.Chrome(options=chrome_options)# 跳转页面
driver.get('https://blog.yiqiesuifeng.cn/')# 其他操作
ele = driver.find_element_by_xpath('xpath 表达式') # 根据 xpath 获取元素对象
ele.click() # 点击
ele.input() # 输入
...# 关闭
driver.quit()

selenium默认启动本机自带的chrome浏览器,如需指定浏览器路径,则可以这样:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options# 指定 chromedriver 路径
chromedriver_path = r"chromedriver 路径"
service = Service(executable_path=chromedriver_path)# chrome 启动参数
chrome_options = Options()# 指定 chrome 路径
chrome_path = r"chrome 路径"
chrome_options.binary_location = chrome_path# 禁用浏览器正在被自动化程序控制的提示
chrome_options.add_experimental_option('excludeSwitches', ['enable-automation', 'enable-logging'])# 启动
driver = webdriver.Chrome(service=service, options=chrome_options)# 跳转页面
driver.get('https://blog.yiqiesuifeng.cn/')# 关闭
driver.quit()

chromedriver版本需要支持对于chrome的版本

  • chromedriver下载地址:https://registry.npmmirror.com/binary.html?path=chromedriver/
  • chromium下载地址:https://registry.npmmirror.com/binary.html?path=chromium-browser-snapshots/

相关文章:

python+selenium实现web自动化(基础入门)

selenium 是一个自动化操控工具,支持对web端进行自动化操控,从而实现自动化测试。 相关文档: https://python-selenium-zh.readthedocs.io/zh-cn/latest/https://www.selenium.dev/documentation/ 安装配置 环境依赖: python…...

Spring Boot 自动配置

1. Spring Boot 自动配置 Spring Boot的自动配置是其核心特性之一,旨在简化Spring应用程序的配置过程。这个特性通过合理的默认值以及根据类路径和其他因素自动配置Spring Beans来极大地减少了配置的工作量。以下是Spring Boot自动配置的详细讲解: 基本…...

力扣labuladong一刷day13天双指针8道链表题

力扣labuladong一刷day13天双指针7道链表题 一、21. 合并两个有序链表 题目链接:https://leetcode.cn/problems/merge-two-sorted-lists/ 思路:合并只需要新new一个虚拟头结点,然后遍历比较两个链表把较小的那一个顺序接在虚拟头结点后面。…...

【剑指offer|图解|链表】链表的中间结点 + 链表中倒数第k个结点

🌈个人主页:聆风吟 🔥系列专栏:数据结构、算法模板 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 📋前言一. ⛳️链表的中间结点二. ⛳️链表中倒数第k个结点📝结语 &#x1f4c…...

被环境变量虐过一遍获得的启示

Oracle数据库环境存在两个数据库版本12C及19C,在执行一些操作时需要设置对应版本的环境变量 计划登录12C环境,于是按如下方式设置环境变量 export ORACLE_BASE/u01/app/oracle export ORACLE_HOME$ORACLE_HOME/product/12.2.0/dbhome_1 export ORACLE_S…...

关于Hbase的一些问题

HBase 1. RowKey如何设计,设计不好会产生什么后果 唯一原则:在设计上要保持RowKey的唯一性。 因为HBase中的数据是以KV的格式来存储的,所以如果向同一张表中插入RowKey相同的数据,旧的数据会被覆盖掉。 长度原则:建…...

level=warning msg=“failed to retrieve runc version: signal: segmentation fault“

安装docker启动后,发现里面没有runc版本信息 目前看是少了runc组件 那我们安装runc https://github.com/opencontainers/runc/releases/download/v1.1.10/runc.amd64 [rootlocalhost ~]# mv runc.amd64 /usr/bin/runc mv:是否覆盖"/usr/bin/runc&q…...

电力工作记录仪、智能安全帽、智能布控球助力智能电网建设

电力行业的建设和发展是国家经济发展的重要支撑,而智能电网作为电力系统的重要组成部分,它的安全高效运行关乎到整个电力系统乃至民生的稳定和安全。为了加快国家经济的发展以及满足人们对电力的需求和用电可靠性的要求,国家早在十二规划中就…...

【CSS】各百分比透明度 opacity 对应的 16 进制颜色值(例如:#FFFFFF80)

文章目录 使用:6位颜色值2位透明度值 color: #000000D4; /* 等价于 */ color: #000000; opacity : 0.83; /* 等价于 */ color: #000000; opacity : 83%; 对照表(0:完全透明,1:不透明) 透明度值百分百值十…...

有依次对应关系的数组X、Y、Z,如何排序其中一个X数组,使得另外的数组还与排序完成后的数组相对应(C语言实现)

1. 目的 有依次对应关系的数组X、Y、Z,排序其中一个X数组,使得另外的数组还与排序完成后的数组相对应,并打印出排序完成后的X、Y、Z数组。 2. 具体实现 以下面的这个对应关系为例,进行相应编程实现。 X [3.7,7.7,-6.6,1.5,-4.5…...

Mysql之聚合函数

Mysql之聚合函数 什么是聚合函数常见的聚合函数GROUP BYWITH ROLLUPHAVINGHAVING与WHERE的对比 总结SQL底层原理 什么是聚合函数 对一组数据进行汇总的函数,但是还是返回一个结果 聚合函数也叫聚集,分组函数 常见的聚合函数 1.AVG(): 求平均值 2.SUM() :…...

Flutter笔记:拖拽手势

Flutter笔记 拖拽手势 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com 本文地址:https://blog.csdn.net/qq_28550263/article/details/134485123 目 录 1. 概述2. 垂直拖…...

软件运维面试题

文章目录 面试题如销售签有一外地客户,要求实施人员在客户现场一周内完成所有项目实施,而标准实施一般为期一个月,针对以上情况实施人员应该如何应对?答案 当你觉得工作的付出和你的收入不成正比的时候你会怎么做?答案 在你进行实…...

代码随想录算法训练营第23期day53|1143.最长公共子序列、1035.不相交的线、53. 最大子序和

目录 一、1143.最长公共子序列 二、1035.不相交的线 三、53. 最大子序和 一、1143.最长公共子序列 力扣题目链接 class Solution { public:int longestCommonSubsequence(string text1, string text2) {vector<vector<int>> dp(text1.size() 1, vector<int…...

MySQL 的执行原理(五)

5.6 再深入查询优化 5.6.1. 全局考虑性能优化 5.6.3.1. 为什么查询速度会慢 在尝试编写快速的查询之前&#xff0c;需要清楚一点&#xff0c;真正重要是响应时间。如果把查询看作是一个任务&#xff0c;那么它由一系列子任务组成&#xff0c;每个子任务都会消耗一定的时间。…...

如何快速将txt类型的日志文件转换为excel表格并进行数据分析报表统计图(如:饼图、折线图、柱状图)?

打开excel创建空白文档 选择一个txt文件 一动下面箭头↑竖线&#xff0c;可以拖拽左右调整要判断转换为一列的数据宽度 根据情况设置不同列的数据格式&#xff08;每一列可以点击&#xff09;&#xff0c;设置好后点击【完成】 设置单元格数据格式 手动插入第一行为每列数据的…...

内网穿透的应用-如何在Docker中部署MinIO服务并结合内网穿透实现公网访问本地管理界面

文章目录 前言1. Docker 部署MinIO2. 本地访问MinIO3. Linux安装Cpolar4. 配置MinIO公网地址5. 远程访问MinIO管理界面6. 固定MinIO公网地址 前言 MinIO是一个开源的对象存储服务器&#xff0c;可以在各种环境中运行&#xff0c;例如本地、Docker容器、Kubernetes集群等。它兼…...

关于Unity自带的保存简单且持久化数据PlayerPrefs类的使用

Unity的PlayerPrefs类是用于在游戏中保存和读取玩家偏好设置或其他简单数据的工具。它提供了一种简单的键值对存储方式&#xff0c;可以在游戏中持久化保存数据。 PlayerPrefs提供了三种类型的数据的处理&#xff1a;分别是int,float,string。 具体使用方法如下&#xff1a; …...

力扣贪心——跳跃游戏I和II

1 跳跃游戏 利用边界进行判断&#xff0c;核心就是判定边界&#xff0c;边界内所有步数一定是最小的&#xff0c;然后在这个边界里找能到达的最远地方。 1.1 跳跃游戏I class Solution {public boolean canJump(int[] nums) {int len nums.length;int maxDistance 0;int te…...

【SA8295P 源码分析 (三)】132 - GMSL2 协议分析 之 GPIO/SPI/I2C/UART 等通迅控制协议带宽消耗计算

【SA8295P 源码分析】132 - GMSL2 协议分析 之 GPIO/SPI/I2C/UART 等通迅控制协议带宽消耗计算 一、GPIO 透传带宽消耗计算二、SPI 通迅带宽消耗计算三、I2C 通迅带宽消耗计算四、UART 通迅带宽消耗计算系列文章汇总见:《【SA8295P 源码分析 (三)】Camera 模块 文章链接汇总 -…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势&#xff1a;专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发&#xff0c;是一款收费低廉但功能全面的Windows NAS工具&#xff0c;主打“无学习成本部署” 。与其他NAS软件相比&#xff0c;其优势在于&#xff1a; 无需硬件改造&#xff1a;将任意W…...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装&#xff08;Encapsulation&#xff09; 定义&#xff1a;将数据&#xff08;属性&#xff09;和操作数据的方法绑定在一起&#xff0c;通过访问控制符&#xff08;private、protected、public&#xff09;隐藏内部实现细节。示例&#xff1a; public …...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接&#xff1a;3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯&#xff0c;要想要能够将所有的电脑解锁&#x…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

Mac软件卸载指南,简单易懂!

刚和Adobe分手&#xff0c;它却总在Library里给你写"回忆录"&#xff1f;卸载的Final Cut Pro像电子幽灵般阴魂不散&#xff1f;总是会有残留文件&#xff0c;别慌&#xff01;这份Mac软件卸载指南&#xff0c;将用最硬核的方式教你"数字分手术"&#xff0…...

return this;返回的是谁

一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请&#xff0c;不同级别的经理有不同的审批权限&#xff1a; // 抽象处理者&#xff1a;审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档&#xff09;&#xff0c;如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下&#xff0c;风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...

论文阅读:LLM4Drive: A Survey of Large Language Models for Autonomous Driving

地址&#xff1a;LLM4Drive: A Survey of Large Language Models for Autonomous Driving 摘要翻译 自动驾驶技术作为推动交通和城市出行变革的催化剂&#xff0c;正从基于规则的系统向数据驱动策略转变。传统的模块化系统受限于级联模块间的累积误差和缺乏灵活性的预设规则。…...

【iOS】 Block再学习

iOS Block再学习 文章目录 iOS Block再学习前言Block的三种类型__ NSGlobalBlock____ NSMallocBlock____ NSStackBlock__小结 Block底层分析Block的结构捕获自由变量捕获全局(静态)变量捕获静态变量__block修饰符forwarding指针 Block的copy时机block作为函数返回值将block赋给…...