在遇到一些特殊的情况的时候,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
补充一个在光标位置录入内容的代码文章来源:https://www.toymoban.com/news/detail-848214.html
pywinauto.keyboard.send_keys('内容',pause=0.0001) # pause是键盘模拟每个字符录入时间长短
说明一下这里的send_keys是模拟键盘,还有一个是send_text还是key_text的(记不清了)那个是直接录入,没有模拟操作,但是那个是另外一个库的,那个库好像有些限制,比如需要获取控件标题啦,id啦等等要比较精确,所以我这里使用了pywinauto文章来源地址https://www.toymoban.com/news/detail-848214.html
到了这里,关于自动化分享----pywinauto的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!