Selenium 点击、输入、截图、读数、切换页(Chrome109.0.5414.75;python 3.7.9)

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数据

python读取excel文件的三种方法

0.3 自动设置环境变量

0.4 win10 bat定时任务

Windows中通过任务计划程序定时执行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 点击

Python操作selenium模拟网页点击

element.click()

2.3.3 下拉选项

selenium之 下拉选择框Select

2.4 输入

Python使用selenium库实现文本输入和点击事件

input_element=br.find_element_by_xpath('//*[@id="mq"]')   #获取该输入框的Xpath
input_element.clear()        # 清楚该输入框中的原本内容
input_element.send_keys("包包")     # 向该输入框中添加搜索词: "包包“

2.5 提取数据

selenium取值方法

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)

批处理bat echo中文乱码完美解决方法

使用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


  • 11
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值