自动化分享----pywinauto

在遇到一些特殊的情况的时候,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

相关推荐

  1. 自动化分享----pywinauto

    2024-04-05 06:06:04       15 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-05 06:06:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-05 06:06:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-05 06:06:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-05 06:06:04       20 阅读

热门阅读

  1. ansible安装

    2024-04-05 06:06:04       17 阅读
  2. 每日一题 --- 滑动窗口最大值[力扣][Go]

    2024-04-05 06:06:04       15 阅读
  3. MCU 与 SoC 的主要区别

    2024-04-05 06:06:04       11 阅读
  4. postcss安装与使用

    2024-04-05 06:06:04       14 阅读
  5. Elasticsearch 8.x ELK 搭建并配置 SSL

    2024-04-05 06:06:04       15 阅读
  6. MySQL面试题系列-7

    2024-04-05 06:06:04       12 阅读
  7. 二十、Rust AOP 切面增强

    2024-04-05 06:06:04       16 阅读