UI 自动化 excel
UI automation with excel
我是 UI 自动化的新手。在我目前的组织中,我的任务是使用 GUI(图形用户界面)屏幕阅读制作一个自动化工具,但由于屏幕分辨率不同,它无法与我同事的其他机器完美配合。
我在 you-tube 上观看了 this link 以尝试理解 UI Automation with excel,但我在其他地方找不到太多关于此主题的内容.
任何人都可以指导我获取有关 UI 自动化的资源吗?我想知道在哪里可以学习它、阅读它以及如何使用 Excel.
实现它
提前致谢 如果有人能帮助我,我将不胜感激。
似乎您正在使用坐标进行自动化,当您切换到其他分辨率时坐标会发生变化。如果是这种情况,请使用 ID、Class、Xpath、CSS 等自动化您的应用程序。link 将在这方面帮助您:http://www.guru99.com/locators-in-selenium-ide.html
对于使用 Excel 的自动化,请查看以下内容 link:
http://www.guru99.com/all-about-excel-in-selenium-poi-jxl.html
Microsoft 的 UIAutomation 非常强大,可以与 windows 7、8、10 以及来自 visual basic 的应用程序(32 位和 64 位)配合使用,并且可以方便地用于执行一些不错的 GUI 自动化而不昂贵工具。
确保在 VBA 参考文献中有 UIAutomationCore.Dll 个参考文献(有时在某些计算机上很奇怪,您必须将其复制到您的文档文件夹)
您可以在下面看到 2 个基本示例,但由于 MS Automation 是一个包含所有例程的庞大库,您可以在 MSDN 上阅读很多内容以获取完整文档。
我在 AutoIt 和 VBA
中使用 MS UIA 例程
- 对于 AutoIt,其共享在这里
https://www.autoitscript.com/forum/topic/153520-iuiautomation-ms-framework-automate-chrome-ff-ie/
- 对于VBA我没有标准库但是有人试过了
这个
https://github.com/mhumpher/UIAutomation_VBA
选项显式
Sub test()
Dim c As New CUIAutomation
Dim oDesktop As IUIAutomationElement
Set oDesktop = c.GetRootElement
Debug.Print oDesktop.CurrentClassName & vbTab & oDesktop.CurrentName & vbTab & oDesktop.CurrentControlType
End Sub
'Test uia just dumps all windows of the desktop to the debug window
Sub testUIA()
Dim allEl As IUIAutomationElementArray 'Returns an element array with all found results
Dim oElement As IUIAutomationElement 'Reference to an element
Dim ocondition As IUIAutomationCondition
Dim i As Long
Dim x As New clsUIA
'Just reference the three mainly used properties. many more are available when needed
Debug.Print x.oDesktop.CurrentName & x.oDesktop.CurrentClassName & x.oDesktop.CurrentControlType
Set ocondition = x.oCUIAutomation.CreateTrueCondition 'Filter on true which means get them all
Set allEl = x.oDesktop.FindAll(TreeScope_Children, ocondition) 'Find them in the direct children, unfortunately hierarchies are strange sometimes
'Just reference the three mainly used properties. many more are available when needed
For i = 0 To allEl.Length - 1
Set oElement = allEl.GetElement(i)
' If oElement.CurrentClassName = "PuTTY" Then
Debug.Print oElement.CurrentClassName & oElement.CurrentName & oElement.CurrentControlType
' Debug.Print oElement.CurrentBoundingRectangle
oElement.SetFocus
DoEvents
Sleep 2000
' End If
Next
End Sub
创建 clsUIA class 然后插入此代码
'clsUIA 具有一些逻辑,例如
'start by add the following code
Dim c As New CUIAutomation
Public oCUIAutomation As New CUIAutomation
Function oDesktop() As IUIAutomationElement
Set oDesktop = c.GetRootElement
End Function
我是 UI 自动化的新手。在我目前的组织中,我的任务是使用 GUI(图形用户界面)屏幕阅读制作一个自动化工具,但由于屏幕分辨率不同,它无法与我同事的其他机器完美配合。
我在 you-tube 上观看了 this link 以尝试理解 UI Automation with excel,但我在其他地方找不到太多关于此主题的内容.
任何人都可以指导我获取有关 UI 自动化的资源吗?我想知道在哪里可以学习它、阅读它以及如何使用 Excel.
实现它提前致谢 如果有人能帮助我,我将不胜感激。
似乎您正在使用坐标进行自动化,当您切换到其他分辨率时坐标会发生变化。如果是这种情况,请使用 ID、Class、Xpath、CSS 等自动化您的应用程序。link 将在这方面帮助您:http://www.guru99.com/locators-in-selenium-ide.html
对于使用 Excel 的自动化,请查看以下内容 link: http://www.guru99.com/all-about-excel-in-selenium-poi-jxl.html
Microsoft 的 UIAutomation 非常强大,可以与 windows 7、8、10 以及来自 visual basic 的应用程序(32 位和 64 位)配合使用,并且可以方便地用于执行一些不错的 GUI 自动化而不昂贵工具。
确保在 VBA 参考文献中有 UIAutomationCore.Dll 个参考文献(有时在某些计算机上很奇怪,您必须将其复制到您的文档文件夹)
您可以在下面看到 2 个基本示例,但由于 MS Automation 是一个包含所有例程的庞大库,您可以在 MSDN 上阅读很多内容以获取完整文档。 我在 AutoIt 和 VBA
中使用 MS UIA 例程- 对于 AutoIt,其共享在这里
https://www.autoitscript.com/forum/topic/153520-iuiautomation-ms-framework-automate-chrome-ff-ie/
- 对于VBA我没有标准库但是有人试过了 这个 https://github.com/mhumpher/UIAutomation_VBA
选项显式
Sub test()
Dim c As New CUIAutomation
Dim oDesktop As IUIAutomationElement
Set oDesktop = c.GetRootElement
Debug.Print oDesktop.CurrentClassName & vbTab & oDesktop.CurrentName & vbTab & oDesktop.CurrentControlType
End Sub
'Test uia just dumps all windows of the desktop to the debug window
Sub testUIA()
Dim allEl As IUIAutomationElementArray 'Returns an element array with all found results
Dim oElement As IUIAutomationElement 'Reference to an element
Dim ocondition As IUIAutomationCondition
Dim i As Long
Dim x As New clsUIA
'Just reference the three mainly used properties. many more are available when needed
Debug.Print x.oDesktop.CurrentName & x.oDesktop.CurrentClassName & x.oDesktop.CurrentControlType
Set ocondition = x.oCUIAutomation.CreateTrueCondition 'Filter on true which means get them all
Set allEl = x.oDesktop.FindAll(TreeScope_Children, ocondition) 'Find them in the direct children, unfortunately hierarchies are strange sometimes
'Just reference the three mainly used properties. many more are available when needed
For i = 0 To allEl.Length - 1
Set oElement = allEl.GetElement(i)
' If oElement.CurrentClassName = "PuTTY" Then
Debug.Print oElement.CurrentClassName & oElement.CurrentName & oElement.CurrentControlType
' Debug.Print oElement.CurrentBoundingRectangle
oElement.SetFocus
DoEvents
Sleep 2000
' End If
Next
End Sub
创建 clsUIA class 然后插入此代码 'clsUIA 具有一些逻辑,例如
'start by add the following code
Dim c As New CUIAutomation
Public oCUIAutomation As New CUIAutomation
Function oDesktop() As IUIAutomationElement
Set oDesktop = c.GetRootElement
End Function