目录
0、python环境 & 依赖包 & 环境变量
selenium入门超详细教程——网页自动化操作
入门指南 | Selenium
python命令行运行找不到自定义模块
0.0 说明
excel:读取账号密码(pandas)、记录读数(openpyxl)
word:操作word(pipywin32)
网页操作:seleinium
截图裁剪:PIL
窗口获取:【待完成】
windows 批处理文件bat中当前目录。
BAT脚本中%~dp0(获取当前目录)
cd %~dp0
start /d "D:\Program Files (x86)\Tencent\QQ\Bin" QQ.exe
0.1 环境+依赖包+打包移植
windows中python环境打包五种方式,无python的电脑也可用
1.导出安装包信息
pip freeze > requirements.txt
注意:在requirements.txt中,setuptools要手动添加,setuptools==47.1.0
,添加后再下载离线安装包。
呕心沥血整理,python离线安装第三方库(带疑难杂症实例)!!!
2.下载离线安装包放到当前文件夹的packs文件夹中
pip download -d ./packs -r requirements.txt
3.复制requirements.txt和packs文件夹到另一台电脑上使用命令离线安装
pip install --no-index --find-links=./packs -r requirements.txt
切换环境
cd C:\ruanjian\python312\pyenv\pyenv-win\versions\3.7.9\env\sj\Scripts
activate.bat
0.2 读取excel数据
0.3 自动设置环境变量
0.4 win10 bat定时任务
1、selenium + IE
IE+python+selenium环境自动化
IE 与 EDGE 浏览器驱动
Selenium webdriver 在IE下定位找不到元素的问题
Python 模拟鼠标点击(可后台)
教你快速用 Python 控制键盘和鼠标,彻底解放双手
IEDriverServer 官网
IEDriverServer要用和selenium同版本的。
(Selenium 4.1,IEDriverServer 4.0)
2、selenium + Chrome
Python selenium 使用Chrome 禁止弹出保存密码弹窗
Selenium 系列篇(三):窗口篇
selenium:如何解决no such element
windows下,用无界面的方式运行selenium,怎么最大化浏览器?
Google Chrome 谷歌浏览器历史版本下载
最详细的教程,教你如何彻底关闭Chrome浏览器自动更新
2.1 后台
Python selenium 去掉“隐藏正受到自动测试软件的控制”
selenium等待定位标签加载完再执行
selenium之等待页面(或者特定元素)加载完成
Python Selenium显式等待和隐式等待详细说明
2.2 定位元素
Python+selenium自动化八大元素定位方法及实例(超详细)
selenium处理多个iframe的情况
selenium之如何定位iframe中的元素
例如:selenium模块中的find_element_by_id方法无法使用,会报错:
AttributeError: ‘WebDriver’ object has no attribute ‘find_element_by_id’
改用
driver.find_element(By.ID,“value”)
并导入
from selenium.webdriver.common.by import By
就可以了,其他元素定位方法同理修改下即可。
2.3 操作
技巧 | Python selenium滑块滑动至浏览器底部(顶部)
2.3.1 悬停
Python selenium的webdriver之鼠标悬停
2.3.2 点击
element.click()
2.3.3 下拉选项
2.4 输入
input_element=br.find_element_by_xpath('//*[@id="mq"]') #获取该输入框的Xpath
input_element.clear() # 清楚该输入框中的原本内容
input_element.send_keys("包包") # 向该输入框中添加搜索词: "包包“
2.5 提取数据
3、截图
Selenium学习之元素属性值、坐标位置、大小
python 三种方式实现截屏(详解+完整代码)
PyQt 可以指定获取的窗口,即使窗口被遮挡。窗口最小化时无法获取截图。
首先需要获取窗口的句柄。
Selenium 自动化截取网页指定区域
Selenium 截全图,PIL剪裁
4、操作窗口(非浏览器的其他窗口,运审)
获取窗口
python操作windows窗口,python库pygetwindow使用详解
操作窗口
Python 使用 pyautogui 基本窗口、鼠标、组合键的使用(三)
pip install win32gui 安装报错,python版本过高,使用pypiwin32
pip install win32gui 安装报错解决方案
# -*- coding: UTF-8 -*-
import pyautogui as pyg
import win32gui as wg
import pygetwindow as gw
# 获取当前活跃窗口,返回类型:Win32Window
window = gw.getActiveWindow()
# 获取当前活跃窗口的 title名
gw.getActiveWindowTitle()
# 获取所有打开窗口标题的列表
# 结果:('', 'C:\\WINDOWS\\system32\\cmd.exe - pipenv shell - python' ...)
gw.getAllTitles()
# 获取所有打开窗口的列表,返回类型是Win32Window的列表
windows = gw.getAllWindows()
for window in windows:
print(window)
# 返回位于给定屏幕坐标(x, y)处的窗口
# gw.getWindowsAt(x, y)
# 根据标题名获取窗口列表
window = gw.getWindowsWithTitle(‘test.txt - 记事本’)
# 获取第一个
w = window[0]
## 获取活动窗口
windows = pyg.getActiveWindow()
## <Win32Window left="-8", top="-8", width="1626", height="902", title="windows_gui_test.py - python_work - Visual Studio Code">
# 窗口坐标
print(windows)
# txt置顶
w.activate()
# pyautogui获取txt
windows = pyg.getActiveWindow()
print(windows)
# 点击
pyg.leftClick(1159,100)
#输入
pyg.typewrite('1234')
用法
# 获取一个窗口,此处我用记事本打开一个txt文件
windows = gw.getWindowsWithTitle('1.txt - Notepad')
# 获取第一个
w = windows[0]
# 获取标题名
w.title
# 将指定窗口设为活跃窗口(最小化时无法打开)
w.activate()
# 窗口是否是活跃窗口
w.isActive
# 获取窗口的上、下、左、右像素值
# 还有获取上和下、左和上等等一系列方法
w.bottom
w.top
w.left
w.right
# 获取上左以及宽高:Box(left=377, top=317, width=528, height=614)
w.box
# 获取宽高
w.width
w.height
# 隐藏和显示窗口(真正看不到了)
w.hide()
w.show()
# 关闭窗口
w.close()
# 窗口是否是最大化/最小化
w.isMaximized
w.isMinimized
# 将窗口最大化
w.maximize()
# 将窗口最小化
w.minimize()
# 将最大化/最小化的窗口还原
w.restore()
# 右移x,左移y
w.move(x, y)
w.moveRel(x, y)
# 移动至屏幕的x, y处
w.moveTo(x, y)
# 窗口宽度扩大、高度扩大(往右下角扩大)
w.resize(widthOffset, heightOffset)
w.resizeRel(widthOffset, heightOffset)
# 设置窗口大小
w.resizeTo(newWidth, newHeight)
5、word
Python操作wps和et(WPS版的DOC和EXCEL)
使用python-docx实现对word文档里的字符串、图片批量替换
【python-docx】文本操作(段落、run、标题、首行缩进、段前段后、多倍行距、对齐方式)
python-docx之图片操作之添加删除
6、版本
Chrome:109.0.5414.75
IE:11.1457.17763.0
python:3.7.9
selenium:4.1.1
attrs==23.2.0
certifi==2023.11.17
cffi==1.15.1
clr-loader==0.2.6
cryptography==42.0.5
et-xmlfile==1.1.0
exceptiongroup==1.2.0
setuptools==47.1.0
h11==0.14.0
idna==3.6
importlib-metadata==6.7.0
MouseInfo==0.1.3
numpy==1.21.6
openpyxl==3.1.2
outcome==1.3.0.post0
pandas==1.3.5
Pillow==9.5.0
PyAutoGUI==0.9.54
pycparser==2.21
PyGetWindow==0.0.9
PyMsgBox==1.0.9
pyOpenSSL==24.0.0
pyperclip==1.8.2
pypiwin32==223
PyRect==0.2.0
PyScreeze==0.1.30
PySocks==1.7.1
python-dateutil==2.8.2
pythonnet==3.0.3
pytweening==1.2.0
pytz==2024.1
pywin32==306
selenium==4.1.1
six==1.16.0
sniffio==1.3.0
sortedcontainers==2.4.0
trio==0.22.2
trio-websocket==0.11.1
typing-extensions==4.7.1
urllib3==1.26.18
urllib3-secure-extra==0.1.0
wsproto==1.2.0
zipp==3.15.0