pywinauto点击发件扫描,如何实现,发件扫描需要先点击开单管理才能看到
可以模拟键盘按键实现,展开树状控件对应的键盘操作是按下小键盘的+号,你代码控制照着模拟即可。
回答引自chatgpt
请确保将"your_application.exe"和"主窗口标题"替换为你实际使用的应用程序的可执行文件路径和主窗口标题。
这段代码将启动应用程序,连接到主窗口,然后依次点击"开单管理"和"发件扫描"按钮。请根据你的实际情况修改代码中的窗口标题和按钮标题
from pywinauto import Application
# 启动应用程序
app = Application().start("your_application.exe") # 替换为你的应用程序的可执行文件路径
# 连接到主窗口
main_window = app["主窗口标题"] # 替换为你的应用程序的主窗口标题
# 点击"开单管理"按钮
main_window.child_window(title="开单管理").click()
# 点击"发件扫描"按钮
main_window.child_window(title="发件扫描").click()
不知道你这个问题是否已经解决, 如果还没有解决的话:在我们的实践中,主要使用到了
import time
from pywinauto import keyboard
from pywinauto import mouse
from pywinauto import Application
keyboard用来模拟键盘输入以及滚动条
mouse用来模拟鼠标点击
application主要用来唤醒浏览器
先附上主要代码
import time
from pywinauto import keyboard
from pywinauto import mouse
from pywinauto import Application
def sendMsg(topicNum):
print("topicNum"+str(topicNum))
keyboard.send_keys('^T')
time.sleep(3)
keyboard.send_keys("https://bbs.csdn.net/topics/"+str(topicNum))
keyboard.send_keys('{VK_RETURN}')
time.sleep(10)
keyboard.send_keys('{VK_SPACE}')
time.sleep(3)
mouse.click(coords=(1180, 1010))
time.sleep(3)
keyboard.send_keys('# d求个五星回评 ')
keyboard.send_keys('{ENTER}')
keyboard.send_keys("链接直达:[](https://bbs.csdn.net/topics/603958738)")
keyboard.send_keys('{ENTER}')
keyboard.send_keys("**私信自动源码**")
keyboard.send_keys('^{ENTER}')
time.sleep(3)
mouse.click(coords=(1180, 200))
fun(num+1)
print("end ")
#使用后端方式打开浏览器
app = Application(backend="uia").start("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe")
time.sleep(3)
#开发打开其他博主的链接
sendMsg(topicNum)
topicNum是其他博主的互动区id,这里建议先获取参与这次评选的用户列表,再次提示,我们只做有限的评论,不要随意爬取随意评论给官方制造麻烦,可以看到其他玩家用爬虫死命得到处评论还多次评论,说明其代码并没有做好控制,只是为了发而发。
可以看到代码中会有很多的sleep,这是因为鼠标信号跟键盘信号 与 页面渲染会有时间差。如果页面还没渲染好就进行点击等操作只会操作失败。
框架比较差的点在于没有判断鼠标及键盘操作的结果是否符合。
根据参考资料中的代码,结合问题描述,可以使用pywinauto库实现点击控件的操作。首先需要找到对应的窗口和控件的句柄,然后通过点击句柄来模拟点击操作。
具体的解决方案如下: 1. 导入所需的库:
import pywinauto
from pywinauto import findwindows, findbestmatch
from pywinauto import application
window_title = "应用程序的窗口标题" # 将窗口标题替换为实际的窗口标题
hwnd = findwindows.find_windows(title_re=window_title)[0]
window = findbestmatch.top_window() # 根据hwnd获取窗口对象
control_name = "控件的名称" # 将控件名称替换为实际的控件名称
control = window.child_window(title=control_name)
control_hwnd = control.handle
control.click()
import pywinauto
from pywinauto import findwindows, findbestmatch
from pywinauto import application
# 根据窗口标题找到窗口句柄
window_title = "应用程序的窗口标题" # 将窗口标题替换为实际的窗口标题
hwnd = findwindows.find_windows(title_re=window_title)[0]
# 根据控件名找到控件句柄
window = findbestmatch.top_window() # 根据hwnd获取窗口对象
control_name = "控件的名称" # 将控件名称替换为实际的控件名称
control = window.child_window(title=control_name)
control_hwnd = control.handle
# 点击控件
control.click()
请将上述代码中的 "应用程序的窗口标题" 和 "控件的名称" 替换为实际的窗口标题和控件名称。
希望这个解决方案能帮到你!如果有任何问题,请随时提问。