使用Selenium控制Chrome浏览器 --工作自动化

news2024/11/24 20:24:53

使用Selenium控制Chrome浏览器 --工作自动化

背景:

最近朋友在用秒账做帐时,由于销售单量很大,重复录入工作一天一录就近五个小时,寻求帮助,问能不能把这重复劳动减少些,看后分析,使用web自动化,应能解决问题,特此记录如下:

 Selenium 简介:Selenium 是一套完整的web应用程序测试系统,包含了测试的录制(Selenium IDE),编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。Selenium的核心Selenium Core基于JsUnit,完全由JavaScript编写,因此可以用于任何支持JavaScript的浏览器上。Selenium 支持的语言包括C#,Java,Perl,PHP,Python 和 Ruby。目前,Selenium Web 驱动程序最受 Python 欢迎。 Selenium 测试脚本可以使用任何支持的编程语言进行编码,并且可以直接在大多数现代 Web 浏览器中运行。

安装Selenium:

pip install selenium

查看Chrome版本,下载安装chromedriver

chromedriver的Windows版本分为32位和64位,用的32位Windows操作系统的同学请下载Windows x86版本,用64位Windows操作系统的同学请下载Windows x86-64版本。

下载地址:http://chromedriver.storage.googleapis.com/index.html

 根据自身浏览器选择:

 

下载后是一个压缩包,解压后只有一个文件:chromedriver.exe,将它放到python安装目录的scripts目录。我调试时直接放在了指定目录中,增加了代码:

chrome_driver = os.path.join(os.getcwd(), "chromedriver.exe")

调试前装备:

# -*- coding: utf-8 -*-
# @Time : 2023年04月30日 20时51分
# @File : 秒帐.py
# @notice :
import os


from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
# chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")  # 9515--79
chrome_driver = os.path.join(os.getcwd(), "chromedriver.exe")
# print('kaishi', chrome_driver)
browser = webdriver.Chrome(executable_path=chrome_driver, options=chrome_options)
# browser.maximize_window()  # 最大化窗口

# 通过浏览器向服务器发送URL请求
browser.get("http://baidu.com")

运行正常,可以进行调试了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/478648.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

为网站的中文和英文使用不同的字体

CSS为网站的中文和英文使用不同的字体 前言 最近我在搭建个人网站,在这个过程中遇到很多的问题,不过chatGPT3.5帮助了很多,这是我使用的咒语: 我正在搭建一个个人网站,使用python Flask框架,CSS采用Boots…

linux网络设置与维护命令

文章目录 一、linux网络设置与维护命令总结 一、linux网络设置与维护命令 Linux ifconfig命令:配置或显示网络接口信息 Linux netstat命令:显示网络状态 Linux ip命令:执行网络管理任务 Linux ping命令:测试主机间网络连通性 Linux wall命令:发送广播 Linux finger命令:查找并…

ShardingJDBC的实核心流程和商户商家订单的分片实现

一、ShardingJDBC的核心流程 ShardingJDBC的核心流程主要分成六个步骤,分别是:SQL解析->SQL优化->SQL路由->SQL改写->SQL执行->结果归并,流程图如下: 4.1、SQL解析 分为词法解析和语法解析。 先通过词法解析器将SQL拆分为一…

基于ESP32 蓝牙游戏手柄设计

使用 ESP32 并通过 BLE 通信的 DIY 手持游戏手柄 这个项目中使用的东西 硬件组件 esp32 1 ws2812b 6 操纵杆 2 角度按钮 2 按钮 8 18560电池和电池座 2 3路拨动开关 1 TP4056带保…

【从0到1了解Libarchive】带你了解Libarchive Libarchive的用途意义以及成功入门Libarchive

目录 0 如果你还不知道Libarchive是什么请一定要先看一下 1 简介 1.1 为什么实现Libarchive 1.2 到底都有谁在用呢? 1.3 Libarchive都有哪些功能 1.4 我们可以通过这些获取更多信息 1.5 如何贡献 2 Libarchive归档与压缩 3 Libarchive编译 4 Libarchive简…

ApplicationContext 和 BeanFactory 的区别

✏️作者:银河罐头 📋系列专栏:JavaEE 🌲“种一棵树最好的时间是十年前,其次是现在” 目录 ApplicationContext 和 BeanFactory 的区别 ApplicationContext 和 BeanFactory 的区别 那么这 2 种获取 Spring 上下文对象…

搭建electron-vue上

electron-vue 准备工作修改package.jsonappveyor.yml.travis.yml.gitignore.eslintrc.js.eslintignore.babelrcsrc/renderer/main.jssrc/renderer/App.vuesrc/renderer/store/index.jssrc/renderer/store/modules/Counter.jssrc/renderer/store/modules/Counter.jssrc/renderer…

渗透测试 | 目录扫描

0x00 免责声明 本文仅限于学习讨论与技术知识的分享,不得违反当地国家的法律法规。对于传播、利用文章中提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本文作者不为此承担任何责任,一旦造成后果请自行承担…

BUUCTF ciscn_2019_n_8

小白垃圾做题笔记而已,不建议阅读观看。 看到保护后我………………傻眼了。这保护全看根本无从下手嘛。 看到源程序后我依然有点迷茫。 我是小白,直到看到了大佬的wp,我才有有点头绪。 这里,var[13]里的不能为0 并且里边存储的还…

Java 基础入门篇(六)——— String 类详解

文章目录 一、String 类概述二、String 创建对象的方式2.1 创建对象的两种方式2.2 面试:两种方式的区别 ★2.3 常见面试题 ★ 三、String 类常用方法3.1 字符串内容比较3.2 常用 API:遍历、截取、替换、分割 一、String 类概述 java.lang.String 类代表…

R语言 | 日期和时间的处理

目录 一、日期的设定与使用 1.1 as.Date()函数 1.2 weekdays()函数 1.3 months()函数 1.4 quarters()函数 1.5 Sys.localeconv()函数 1.6 Sys.Date()函数 1.7 再谈seq()函数 1.8 使用不同格式表示日期 二、时间的设定与使用 2.1 Sys.time()函数 2.2 as.POSIXct()函数…

ChatGPT学习企业产品、服务内容、往期方案,处理所输入的客户需求,定制化生成解决方案

该场景对应的关键词库(6个): 企业产品和服务内容、客户需求和参数、营销方案和推广策略、数据处理和模型训练、客户满意度和营销效率、往期营销方案 提问模板: 场景产品问题 模板1: 场景:某家电公司生产的…

【Redis】Redis单线程和多线程

Redis单线程 Redis为什么是单线程 Redis的版本很多,比如3.x、4.x、6.x等,版本不同,架构不同: 3.x版本,最早的版本,单线程4.x版本,严格意义上来说不是单线程,负责处理客户端请求的…

使用Vue+axios+Vuex实现登录后前端数据本地化存储实战

前言 这已经是《Vue + SpringBoot前后端分离项目实战》专栏的前端部分第8篇博客了,服务端部分由天哥(天哥主页)负责,目前专栏目录如下: Vue + SpringBoot前后端分离项目实战 - 前端部分1. 手把手带你做一套毕业设计-征程开启2. 我应该把毕业设计做到什么程度才能过关?3.…

cpp: read and write utf-8 text file using vs 2022

/*****************************************************************//*** \file geovindu.h* \brief 业务操作方法** \author geovindu,Geovin Du* \date 2023-04-22 ***********************************************************************/ /*** https://learn.mi…

【Linux】如何创建进程?

🔥🔥 欢迎来到小林的博客!!       🛰️博客主页:✈️林 子       🛰️博客专栏:✈️ 小林的Linux之路       🛰️社区 :✈️ 进步学堂       &a…

【技术】《Netty》从零开始学netty源码(四十八)之缓存池ObjectPool

目录 ObjectPool创建对象池获取对象get()从本地池中获取对象claim()回收对象 ObjectPool 在分析PooledByteBuf的时候我们遇到了recycleHandler类,该类用于回收已经使用完毕的缓存对象并将其放回池中供下次循环利用,Netty的对象池工作过程大体如下&#…

数字图像处理简答题

目录 1.人类视觉对颜色的主观感觉包括哪三类? 2. 图像成像的过程包括哪三步? 3.图像的采样和量化分别指什么? 4、取k8时,将下图用相应矩阵表示 5、简述当限定了数字图像的数据量时采样和量化参数的选择遵循哪两条原则&#x…

荔枝派Zero(全志V3S)制作 IMG 镜像文件

文章目录 前言一、安装工具二、生成新的 img 文件三、分割虚拟磁盘四、挂载虚拟磁盘并格式化1、首先建立虚拟磁盘并分区2、格式化虚拟磁盘分区 五、开始备份六、卸载虚拟磁盘七、dd 烧录系统八、运行测试 前言 之前在玩板子时每次烧录镜像都是先烧录 uboot 到 SD 卡 8k 偏移处…

03 DQL-表数据的查询

1.数据准备(直接复制执行即可) -- 创建db1数据库 CREATE DATABASE db1;-- 使用db1数据库 USE db1;-- 创建数据表 CREATE TABLE product(id INT, -- 商品编号NAME VARCHAR(20), -- 商品名称price DOUBLE, -- 商品价格brand VARCHAR(10), -- 商品品牌stock INT, -- 商品库存…