当前位置: 首页 > 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/
http://www.lryc.cn/news/238192.html

相关文章:

  • Spring Boot 自动配置
  • 力扣labuladong一刷day13天双指针8道链表题
  • 【剑指offer|图解|链表】链表的中间结点 + 链表中倒数第k个结点
  • 被环境变量虐过一遍获得的启示
  • 关于Hbase的一些问题
  • level=warning msg=“failed to retrieve runc version: signal: segmentation fault“
  • 电力工作记录仪、智能安全帽、智能布控球助力智能电网建设
  • 【CSS】各百分比透明度 opacity 对应的 16 进制颜色值(例如:#FFFFFF80)
  • 有依次对应关系的数组X、Y、Z,如何排序其中一个X数组,使得另外的数组还与排序完成后的数组相对应(C语言实现)
  • Mysql之聚合函数
  • Flutter笔记:拖拽手势
  • 软件运维面试题
  • 代码随想录算法训练营第23期day53|1143.最长公共子序列、1035.不相交的线、53. 最大子序和
  • MySQL 的执行原理(五)
  • 如何快速将txt类型的日志文件转换为excel表格并进行数据分析报表统计图(如:饼图、折线图、柱状图)?
  • 内网穿透的应用-如何在Docker中部署MinIO服务并结合内网穿透实现公网访问本地管理界面
  • 关于Unity自带的保存简单且持久化数据PlayerPrefs类的使用
  • 力扣贪心——跳跃游戏I和II
  • 【SA8295P 源码分析 (三)】132 - GMSL2 协议分析 之 GPIO/SPI/I2C/UART 等通迅控制协议带宽消耗计算
  • 毕业论文GPT说:
  • Week-T10 数据增强
  • 史上最全!PMP实用应试技巧汇总!
  • 037、目标检测-SSD实现
  • 【开题报告】基于SpringBoot的摄影作品展示网站的设计与实现
  • SVR和SVM是什么关系
  • Flutter 3.16 中带来的更新
  • 批量插入数据与分页的原理及推导
  • SMART PLC累计流量功能块(梯形积分法+浮点数累加精度控制)
  • 【金融分析】Python:病人预约安排政策 | 金融模拟分析
  • 后端接口测试,令牌校验住,获取tocken 接口的方式