一、背景 最近在使用记事本编写带有包名并且有继承关系的java代码并运行时发现出现了很多错误,经过努力一一被解决,今天我们来看一下会遇见哪些问题,并给出解决办法。...解决办法为:我们需要使用javac *.java命令来进行运行,因为此时存在继承关系,编译子类的同时也需要先编译父类 2)运行java Zi命令,出现以下错误 ? 这是什么原因呢?...这是因为我们不存在子文件夹com/hafiz/zhang并且在该子文件夹下不存在Zi.class文件,故找不到主类。 解决办法是:使用javac -d . *.java("-d ."...由此我们得出了在CMD窗口中使用javac和java命令进行编译和执行带有包名的具有继承关系的类的方式: 1.使用javac -d . *.java进行编译 2.使用java com.hafiz.Zi(...带包名的类全名)命令进行运行!
PC端自动化测试(一) pywinauto:同时支持控件操作和图像操作,支持Win32 API和MS UI Automation API A set of Python modules to automate...Windows GUI 安装 python3环境(python3.5以上) pip环境 $ pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pywinauto...选择指定的窗口 # 方式一:app[类名/标题] :推荐使用该方式 # 1.通过窗口类型来选择dlg = app["TNavicatMainForm"] # 2.通过窗口标题来选择dlg = app["...Navicat for MySQL"] # 方式二:app.类名dlg =app.TNavicatMainForm dlg.print_control_identifiers() 操作窗 # 窗口最大化...CheckBox 组框 GroupBox 对话框 Dialog 头部内容 Header 列表显示控件 ListView 选项卡控件 TabControl 工具提示 ToolTips 菜单 Menu 窗格
一、前言 今天在这边专门整理了一遍文章,和大家一起聊聊如何使用python做PC端自动化!...三、使用说明 安装好了之后,关于使用说明大家可以参照官方文档上的说明 内容翻译如下: 就是说在我们安装好Pywinauto之后,首先要确定哪种可访问性技术(pywinauto的backend)可以用于我们的应用程序...2、窗口选择 打开这个窗口之后,我们要操作该窗口的话,那么就的先选中这个窗口,关于窗口的选择有一下几种方式 # 方式一 :不适用于窗口名为中文的 wind_1 = app.窗口名 # 方式二 :窗口名可以为中文...wind_2 = app["窗口名"] # 案例使用:选择上面打开的计算器程序窗口 wind_calc = app['无标题 - 记事本'] 3、控件操作 程序窗口中的内容,把它称之为控件,我们要对这个窗口的内容进行操作...上面打印出来的内容分别对应窗口种 选择控件 关于控件选择的方法有好几种,最简单的方法如下: # 选择控件的方法 wind_calc = app["窗口名"]["控件名"] # 案例操作:选择编辑窗口 edit
可使用spy++和Inspect工具判断backend适合写哪种。 例如:如果使用Inspect的UIA模式,可见的控件和属性更多的话,backend可选uia,反之,backend可选win32。...# 返回符合条件的子元素列表,支持索引,是BaseWrapper对象(或子类) iter_children(**kwargs) # 返回子元素的迭代器,是BaseWrapper对象(或子类) descendants...2.常用属性(重要) # 常用的 class_name=None, # 类名 class_name_re=None, # 正则匹配类名 title=None, # 控件的标题文字,对应inspect中Name...,一切点击操作的基本方法(底层调用只是参数不同),左键单击,使用时一般都使用默认不需要带参数 ctrl.right_click_input() # 鼠标右键单击 ctrl.type_keys(keys,...ctrl.element_info.name ctrl.class_name() # 控件的类名,对应inspect中ClassName字段,有些控件没有类名 # ctrl.element_info.class_name
有如下树形结构:RT-ST-SST-SSST共四层,RT是根节点,往后依次是一代子节点,二代子节点,三代子节点。 如何根据当前节点的id,获得其子节点呢?这是一个SQL问题。...加入传入的id为1(即根节点),使用自连+SUBSTRING_INDEX函数得到其子节点: 示例: id name type url 1 大树 RT root...为1(即根节点),使用自连+SUBSTRING_INDEX函数得到其子节点: mysql> select tree1.* from tree_node as tree1 -> join tree_node...roottree_main_line1 | +------------------------------------------+ ##利用length差获得..."/"的个数为1,则认为是子节点 mysql> select length('root/tree_main_line1') - length(replace('root/tree_main_line1'
原理之类的不介绍了,官方的文档中说的很详细。 设备连接 我说一下Airtest和夜神模拟器的连接。 我也不清楚为什么,用移动设备连接,通过端口62001连接时很容易崩溃,所以不说这个了。...好在AirtestIDE提供了一键嵌入Windows窗口的功能,点击选择游戏画面,就能把模拟器附加到设备窗中了。...一键嵌入功能主要依靠Airtest进行位置定位,使用 pywinauto的操作接口进行模拟操作。...辅助窗 Airtest主辅助窗提供了很多可操作的方法,当点击选择一个后,就可以到设备窗口中操作,此时脚本编辑窗也会出现代码。 非常简单好用,大家自己测一下就明白了。...times=1) for i in range(5): #touch((374,421),times=1) swipe((140,520),(140,120),1) 如果想研究的话,推荐使用真机进行连接
它可以允许你很容易的发送鼠标、键盘动作给Windows的对话框和控件。 其中,最主要功能为对windows标准控件的一系列动作可编程处理。包括对窗口的指定、鼠标或键盘操作、获得控件属性等等。...程序的开始为对所需应用的启 动或连接。获得程序连接后,pywinauto通过窗口的名称、类名、是否可见等属性寻找匹配的窗口,进而通过类似方法寻找用户所需的控件,并获得相应的 句柄。...windows下使用pywinauto进行窗口操作 用pywinauto进行win32应用程序的测试 举个例子 #!...window_name,即标题文本 window_name = u"无标题 - 记事本" menulist = u"帮助->关于记事本" # 通过Spy++ 获取controller,即窗口类名...ARROW(左箭头) {LEFT} NUM LOCK {NUMLOCK} PAGE DOWN {PGDN} PAGE UP {PGUP} PRINT SCREEN {PRTSC}(保留,以备将来使用
本文将介绍Pywinauto的基本使用方法,帮助读者快速上手并开始自动化Windows界面操作。...和findwindows:from pywinauto import Applicationfrom pywinauto import findwindows启动应用程序使用Application类的start...模块的find_windows()函数找到应用程序窗口的句柄,然后使用Application类的connect()方法连接到该窗口:handle = findwindows.find_windows(title...,可以使用Application类的Dialog方法进行操作。...以下示例展示了如何处理保存确认对话框:dialog = app.Dialogdialog.SaveAs.Yes.click()关闭应用程序在完成操作后,可以使用Application类的kill()方法关闭应用程序
可使用spy++和Inspect工具判断backend适合写哪种。例如:如果使用Inspect的UIA模式,可见的控件和属性更多的话,backend可选uia,反之,backend可选win32。...在pywinauto外再启动应用程序,需要sleep,等程序start 四、 窗口、对话框及控件元素定位方式 1.window,dialog定位方式 1)基于title定位 a)如何获取title?...title为窗口的名称,可使用UISpy一类的定位元素工具去查找。 如图所示,该对话框中的title为Name属性值:“替换” ? b)若使用定位元素工具找不到title怎么办?...3)关键字传参 若以上方法不能满足定位元素的需求,可使用以下列表中的参数传参定位元素,参数可以组合使用。...,可使用类似selenium中xpath的定位方式,根据查子元素的序号去定位元素。
题目描述 小红有一个长度为n的排列,她可以选择两个位置,然后交换两个位置的数。 她想知道能否通过最多一次交换,使得存在一个连续子段,是长度为k的排列。...示例 输入 5 3 1 2 3 4 5 输出 YES 0 解题思路 本题看似很复杂,实际上由于我们要找的是一个固定长度为k的滑动窗口,因此可以直接使用固定滑窗的方法来解答。...Q3:什么时候进行ans的更新?如何更新?...A3:当发现len(dic) <= 1时,说明此时此时固定滑窗可以至多一次交换,使得该滑窗变成一个长度为k的排列。此时退出循环,寻找窗口中缺失的那个数的下标。...())[0] # 长度为k的排列的和可以用等差数列求和公式获得,记为A # 固定窗口的和可以直接计算,记为B # 窗口中多出来的数字,记为C
前言,公司要搭建自动化测试环境,涉及到对设备软件的烧录操作,在网上找了些资料,发现pywinauto这个python库,能很好的支持PC端跑自动化,为此,记录下学习过程 一、环境搭建 1、pywinauto...Spy++ (定位元素工具(win32)) Inspect(定位元素工具(uia)) UI Spy (定位元素工具) Swapy(可简单生成pywinauto代码) 二、pywinauto操作使用...使用方法见entry-points-for-automation 三、控件定位方式 1、window,dialog定位方式 1、基于title定位 a)如何获取title?...title为窗口的名称,可使用UISpy一类的定位元素工具去查找。 如图所示,该对话框中的title为Name属性值:“打开” ? b)若使用定位元素工具找不到title怎么办?...,可使用类似selenium中xpath的定位方式,根据查子元素的序号去定位元素。
UIautomation 1.uiautomation的安装 pip install uiautomation 2.uiautomation的使用 在cmd中运行automation.py -t 3...Adobe Acrobat的句柄通过父窗口句柄获取子句柄#parent为父窗口句柄iddef get_child_windows(parent): 下面重点讲这个库 pywinauto pywinauto...对于 pywinauto 模块,主要使用其中的 Application 类,需要导入包,并定义一个 Application 类的对象。...5sapp = Application(backend = 'uia').start(r"E:\Office\Office14\EXCEL.exe") 查找/调用窗口 通过工具spy++lite查看窗口的类名和标题文字..._(title_re = ‘ ’, class_name = ‘ ’) 方法获得,title_re和 class_name这两个可以单独使用也可以一块使用,因为有时没有标题文本,也有时一个窗口类名有多个对象
大家好,又见面了,我是你们的朋友全栈君。 本文内容在于讨论用pywinauto 如何获取微信控件的问题,欢迎各位大牛指点迷津。...1 pywinauto pywinauto是个在PC端可以使用的自动化测试框架,感谢作者提供这么好的框架。...我已经确信,【微信】控件采用了某种方法屏蔽了,我不知道如何才能获取这些控件,然后操作它? 我的微信是新版本 3.6.0.18 如果你知道欢迎一起讨论。...2 定位窗口控件方法 我原来是这么书写的(如下),但是你回报错,原因就是找不到控件 我确信一下方法没有问题,pywinauto 的文档就这么写的,网络上各种文章也都是这么写的,但是你不会活动你想要的结果...import hotkey from pyperclip import copy import psutil import time # 一个微信类的简单操作 class Weixin(object)
使用 Esc 返回编辑器窗口,使用 F12 跳转到上次使用的工具窗口 完成 Project 工具窗口、Debug 窗口或 Maven 等工具窗口的操作后,使用 Esc 即可返回编辑器(不必在编辑器窗口中点击鼠标...显示工具窗口 我们先来看看开发者们大多是如何在 IntelliJ IDEA 中显示工具窗口的。...例如,要在软件包 ‘com’ 的新子软件包 ‘space’ 中创建类 ‘NewClassInPackageSpace’,则应在新对话框中写入“space.NewClassInPackageSpace”。...iv) 如果仍然找不到使用过的文件,还可使用 Ctrl+Shift+E 访问 Recent Locations,这会显示几行文件以及文件名。...额外提示: 为了便于阅读代码和在编辑器窗格中上下移动,您可以折叠方法、代码块或导入语句集,使其在编辑器窗口中仅占用少量空间。
编辑类控件的基本操作 通过记事本来进行测试 import pywinauto app = pywinauto.Application().start("notepad.exe") # 选择主窗口 dlg...可以通过启动Explorer.exe应用程序,在任务栏的用户提示通知区域找到工具栏控件 from pywinauto import Application app = Application("uia...webdriver.Chrome() browser.get(url=url) browser.find_element_by_xpath("//button[@id='test1']").click() # 使用...pywinauto来选择文件 app = pywinauto.Desktop() # 选择文件上传的窗口 dlg = app["打开"] dlg.print_control_identifiers()..."文件名(&N):Edit"].type_keys("9.png") # 点击打开 dlg["打开(&O)"].click() 连接Navicat并操作 import pywinauto from
在今天的文章中,我们将探讨如何使用 Python 进行 Windows GUI 自动化。GUI 自动化可以帮助我们自动执行许多与操作系统交互的任务,比如移动鼠标、点击按钮、输入文本、移动窗口等。...在命令行中输入以下命令即可: pip install pyautogui 用 pyautogui 打开记事本,输入文本保存 接下来,我们通过一个简单的例子来展示如何使用 pyautogui。...pywinauto 的使用场景 回归测试:定期运行相同的测试,确保软件在进行更改或更新后仍然可以正常工作。 质量保证:确保软件的新版本或功能与预期的用户体验一致。...用 pywinauto 来自动化 Windows 计算器 下面是一个简单的 pywinauto 教程,我们将演示如何用 pywinauto 来自动化 Windows 计算器的操作。...** 以上就是一个基本的例子,展示了如何使用 Python 和 pywinauto 进行 Windows GUI 自动化。
:也就是说,如何进行计算结果。简单的答案:使用transform操作 Where in event time are results calculated?:也就是说,计算什么时间范围的数据。...简单的答案:使用watermark和trigger配合触发计算。 How do refinements of results relate?:也就是说,后续数据的处理结果如何影响之前的处理结果?...简单的答案:Accumulation:丢弃(结果之间是独立且不同的),累积(后来的结果建立在先前的结果上)或累积并撤回(其中累积值加上先前触发的值的撤回) 本文的核心也是在于如何使用时间、窗口、水印(watermark...因此,仅仅依靠watermark的系统是不能同时获得低延迟和正确性的,解决这些问题的关键是引入触发器(Trigger)的概念。...作者给出了三个方案: 丢弃(Discarding):每当有窗格(pane)输出,过去的状态就会被丢弃,这意味着后续的窗格与之前的无关。
测试对象: 窗口 菜单 文件 from pywinauto.application import Application # 启动Navicat app = Application("uia").start...dir() dir(dlg.wrapper_object()) 控件的文本内容获取 .texts() file.texts() # ['文件'] 获取子元素 .children() dlg.children...() menu.children() file.children() 获取控件的类名 .class_name() menu.class_name() 获取控件的属性 menu.get_properties...menu.capture_as_image() pic1.save("menu.png") 截图菜单项 pic3 = file.capture_as_image() pic3.save("file.png") 菜单操作 获取菜单的子菜单项...value 比较的值 Op 比较函数(默认为相等) args 给执行函数传位置参数 kwargs 给执行函数传递关键字参数 from pywinauto.timings import wait_until
在“新建项目”对话框中,选择“项目类型”窗格中的”其他项目类型”中的“安装和部署”,然后选择“模板”窗格中的“安装项目”。在“名称”框中键入 Setup1。 4. 单击“确定”关闭对话框。 5....在“属性”窗口中,选择 ProductName 属性,并键入 数据库打包安装。 二).创建安装程序类 1. 在“解决方案资源管理器”中的”解决方Setup1”上右键选择”添加”后选择“新建项目”。...在“添加新项目”对话框中,选择“项目类型”窗格中的“Visual C#”下的”Windows”,然后选择“模板”窗格中的“类库”。在“名称”框中键入 InstallDB。 3....附:/targetdir="[TARGETDIR]\"是安装后的目标路径,为了在installDB类中获得安装后的路径,我们设置此参数。 如下图所示: ? 五).添加数据库文件 1....(登陆名:ys2006 密码:zhouhuan965) #region ###新建数据库用户的登陆名和密码(登陆名:ys2006 密码:zhouhuan965) string
查看窗口控件 先学会如何查看窗口框架,可以用inspect.exe 查看窗口的层级结构 以打开的记事本为例 也可以通过print_ctrl_ids()方法 (另外一个print_control_identifiers...() 功能一样)查看当前窗口下的控件 from pywinauto import Application import time app = Application('uia').start("notepad.exe...kwargs) # 可以无视层级的找后代中某个符合条件的元素=⇒【最常用】 parent() # 返回此元素的父元素,没有参数 children(**kwargs) # 返回符合条件的子元素列表,支持索引...,是BaseWrapper对象(或子类) iter_children(**kwargs) # 返回子元素的迭代器,是BaseWrapper对象(或子类) descendants(**kwargs) #...常用的一些参数 class_name=None, # 类名 class_name_re=None, # 正则匹配类名 title=None, # 控件的标题文字,对应inspect中Name字段 title_re
领取专属 10元无门槛券
手把手带您无忧上云