自动化分享----pywinauto

文章讲述了在Selenium无法应对某些网站自动化屏蔽时,作者转而使用Python库pywinauto进行鼠标和窗口操作,如鼠标移动、点击以及在谷歌浏览器上的自动化选择和输入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在遇到一些特殊的情况的时候,selenium框架已经无法满足我们的需求了,比如:网站做了自动化屏蔽的时候,会检测到selenium并对操作者进行屏蔽。
经过测试发现pywinauto属于电脑的模拟,当然还有其他的库,不过我这里使用的是pywinauto,感觉还是比较好用的

由于一些原因,我的电脑没法完整的安装一个可以检测控件的工具,名字记不清了,只要搜索一下pywinauto或者另外一个依赖控件的库,就可以找到那个工具

所以我采用了下面代码获取鼠标控件的位置

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import time
import pyautogui
import win32api
import win32con
from ctypes import windll

width, height = pyautogui.size()
print("屏幕分辨率:", width, height)
# 获取鼠标实时位置
for _ in range(3):
    x, y = pyautogui.position()
    print("当前鼠标点击位置:", x, y)
    time.sleep(1)

# 鼠标移动到制定位置
windll.user32.SetCursorPos(22, 250)
# 鼠标点击
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 22, 250)
time.sleep(0.05)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 22, 250)

x, y = pyautogui.position()
print("当前鼠标点击位置:", x, y)

然后通过上面的代码可以获取光标,然后通过pywinauto进行自动化操作
补充一个示例:

import time
import pywinauto
from pywinauto.application import Application

# 打开windows上安装的谷歌浏览器,其他浏览器一样OK
app_test = Application(backend="uia").start(r"C:\Program Files\Google\Chrome\Application\chrome.exe url网址,需要更改 --ico1")
# url网址,需要更改
time.sleep(5)

i = 26
while(i>0):
    pywinauto.mouse.click(coords=(151,224)) # 域名选择
    time.sleep(3)
    pywinauto.mouse.click(coords=(167,263)) # 确定选择
    time.sleep(3)
    pywinauto.mouse.click(coords=(51,908)) # 点击设置 958
    time.sleep(3)
    pywinauto.mouse.click(coords=(1505,909)) # 点击移除
    time.sleep(3)
    pywinauto.mouse.click(coords=(1092,668)) # 确认移除
    time.sleep(3)
    i = i - 1

补充一个在光标位置录入内容的代码

pywinauto.keyboard.send_keys('内容',pause=0.0001) # pause是键盘模拟每个字符录入时间长短

说明一下这里的send_keys是模拟键盘,还有一个是send_text还是key_text的(记不清了)那个是直接录入,没有模拟操作,但是那个是另外一个库的,那个库好像有些限制,比如需要获取控件标题啦,id啦等等要比较精确,所以我这里使用了pywinauto

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值