当前位置:   article > 正文

自动化分享----pywinauto

自动化分享----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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

然后通过上面的代码可以获取光标,然后通过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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

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

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/364587
推荐阅读
相关标签
  

闽ICP备14008679号