跳到主要内容

元素操作

使用元素操控,例如word excel 微信 qq 浏览器等

ssf.ElementExt

注意使用ssf.ElementExt先加载元素,比如读取根元素,根元素的意思就是顶层windows桌面

enums.UIProperty 枚举

属性名称
RuntimeId30000
BoundingRectangle30001
ProcessId30002
ControlType30003
LocalizedControlType30004
Name30005
AcceleratorKey30006
AccessKey30007
HasKeyboardFocus30008
IsKeyboardFocusable30009
IsEnabled30010
AutomationId30011
ClassName30012
HelpText30013
ClickablePoint30014
Culture30015
IsControlElement30016
IsContentElement30017
LabeledBy30018
IsPassword30019
NativeWindowHandle30020
ItemType30021
IsOffscreen30022
Orientation30023
FrameworkId30024
IsRequiredForForm30025
ItemStatus30026
IsDockPatternAvailable30027
IsExpandCollapsePatternAvailable30028
IsGridItemPatternAvailable30029
IsGridPatternAvailable30030
IsInvokePatternAvailable30031
IsMultipleViewPatternAvailable30032
IsRangeValuePatternAvailable30033
IsScrollPatternAvailable30034
IsScrollItemPatternAvailable30035
IsSelectionItemPatternAvailable30036
IsSelectionPatternAvailable30037
IsTablePatternAvailable30038
IsTableItemPatternAvailable30039
IsTextPatternAvailable30040
IsTogglePatternAvailable30041
IsTransformPatternAvailable30042
IsValuePatternAvailable30043
IsWindowPatternAvailable30044
ValueValue30045
ValueIsReadOnly30046
RangeValueValue30047
RangeValueIsReadOnly30048
RangeValueMinimum30049
RangeValueMaximum30050
RangeValueLargeChange30051
RangeValueSmallChange30052
ScrollHorizontalScrollPercent30053
ScrollHorizontalViewSize30054
ScrollVerticalScrollPercent30055
ScrollVerticalViewSize30056
ScrollHorizontallyScrollable30057
ScrollVerticallyScrollable30058
SelectionSelection30059
SelectionCanSelectMultiple30060
SelectionIsSelectionRequired30061
GridRowCount30062
GridColumnCount30063
GridItemRow30064
GridItemColumn30065
GridItemRowSpan30066
GridItemColumnSpan30067
GridItemContainingGrid30068
DockDockPosition30069
ExpandCollapseExpandCollapseState30070
MultipleViewCurrentView30071
MultipleViewSupportedViews30072
WindowCanMaximize30073
WindowCanMinimize30074
WindowWindowVisualState30075
WindowWindowInteractionState30076
WindowIsModal30077
WindowIsTopmost30078
SelectionItemIsSelected30079
SelectionItemSelectionContainer30080
TableRowHeaders30081
TableColumnHeaders30082
TableRowOrColumnMajor30083
TableItemRowHeaderItems30084
TableItemColumnHeaderItems30085
ToggleToggleState30086
TransformCanMove30087
TransformCanResize30088
TransformCanRotate30089
IsLegacyIAccessiblePatternAvailable30090
LegacyIAccessibleChildId30091
LegacyIAccessibleName30092
LegacyIAccessibleValue30093
LegacyIAccessibleDescription30094
LegacyIAccessibleRole30095
LegacyIAccessibleState30096
LegacyIAccessibleHelp30097
LegacyIAccessibleKeyboardShortcut30098
LegacyIAccessibleSelection30099
LegacyIAccessibleDefaultAction30100
AriaRole30101
AriaProperties30102
IsDataValidForForm30103
ControllerFor30104
DescribedBy30105
FlowsTo30106
ProviderDescription30107
IsItemContainerPatternAvailable30108
IsVirtualizedItemPatternAvailable30109
IsSynchronizedInputPatternAvailable30110
OptimizeForVisualContent30111
IsObjectModelPatternAvailable30112
AnnotationAnnotationTypeId30113
AnnotationAnnotationTypeName30114
AnnotationAuthor30115
AnnotationDateTime30116
AnnotationTarget30117
IsAnnotationPatternAvailable30118
IsTextPattern2Available30119
StylesStyleId30120
StylesStyleName30121
StylesFillColor30122
StylesFillPatternStyle30123
StylesShape30124
StylesFillPatternColor30125
StylesExtendedProperties30126
IsStylesPatternAvailable30127
IsSpreadsheetPatternAvailable30128
SpreadsheetItemFormula30129
SpreadsheetItemAnnotationObjects30130
SpreadsheetItemAnnotationTypes30131
IsSpreadsheetItemPatternAvailable30132
Transform2CanZoom30133
IsTransformPattern2Available30134
LiveSetting30135
IsTextChildPatternAvailable30136
IsDragPatternAvailable30137
DragIsGrabbed30138
DragDropEffect30139
DragDropEffects30140
IsDropTargetPatternAvailable30141
DropTargetDropTargetEffect30142
DropTargetDropTargetEffects30143
DragGrabbedItems30144
Transform2ZoomLevel30145
Transform2ZoomMinimum30146
Transform2ZoomMaximum30147
FlowsFrom30148
IsTextEditPatternAvailable30149
IsPeripheral30150
IsCustomNavigationPatternAvailable30151
PositionInSet30152
SizeOfSet30153
Level30154
AnnotationTypes30155
AnnotationObjects30156
LandmarkType30157
LocalizedLandmarkType30158
FullDescription30159
FillColor30160
OutlineColor30161
FillType30162
VisualEffects30163
OutlineThickness30164
CenterPoint30165
Rotation30166
Size30167
IsSelectionPattern2Available30168
Selection2FirstSelectedItem30169
Selection2LastSelectedItem30170
Selection2CurrentSelectedItem30171
Selection2ItemCount30172
HeadingLevel30173
IsDialog30174

Rect 接口

属性名称类型描述
xnumber元素的 x 坐标
ynumber元素的 y 坐标
wnumber元素的宽度
hnumber元素的高度

Point 接口

属性名称类型描述
xnumber点的 x 坐标
ynumber点的 y 坐标

希望这些表格形式的信息对您有所帮助!如果有任何进一步的问题或需要更多的信息,请随时告诉我。

PathInfo 接口

字段名类型描述
main_titleString主窗口标题
main_class_nameString主窗口类名
main_hwndnumber主窗口句柄
pidnumber进程ID
xpathString元素XPath路径
app_pathString应用程序路径
titleString当前元素标题
class_nameString当前元素类名
bounding_rectangleRect当前元素边界矩形
automation_idString当前元素自动化ID
framework_idString当前元素框架ID
control_typeString控件类型
catch_typeString抓取类型

好的,下面是重新格式化的 WinElement 接口和 ElementExt 命名空间中的方法,使用了 ### 标记以便于检索。

WinElement 接口

name()

  • 返回值: String
  • 描述: 获得元素标题
  • 示例:
    const title = element.name();

value()

  • 返回值: String
  • 描述: 获得元素值
  • 示例:
    const value = element.value();

close()

  • 返回值: void
  • 描述: 关闭元素
  • 示例:
    element.close();

class_name()

  • 返回值: String
  • 描述: 获得元素类名
  • 示例:
    const className = element.class_name();

control_type()

  • 返回值: String
  • 描述: 获得元素控件类型
  • 示例:
    const controlType = element.control_type();

childs()

  • 返回值: WinElement[]
  • 描述: 获得元素所有子元素
  • 示例:
    const children = element.childs();

parent()

  • 返回值: WinElement
  • 描述: 获得父元素
  • 示例:
    const parent = element.parent();

runtime_id()

  • 返回值: number[]
  • 描述: 获得运行时ID
  • 示例:
    const runtimeId = element.runtime_id();

automation_id()

  • 返回值: String
  • 描述: 获得UI ID
  • 示例:
    const automationId = element.automation_id();

process_id()

  • 返回值: number
  • 描述: 获得进程ID
  • 示例:
    const processId = element.process_id();

localized_control_type()

  • 返回值: String
  • 描述: 获得控件本地化文本名称
  • 示例:
    const localizedControlType = element.localized_control_type();

accelerator_key()

  • 返回值: String
  • 描述: 获得快捷键
  • 示例:
    const acceleratorKey = element.accelerator_key();

has_keyboard_focus()

  • 返回值: Boolean
  • 描述: 判断元素是否有键盘焦点
  • 示例:
    const hasFocus = element.has_keyboard_focus();

is_keyboard_focusable()

  • 返回值: Boolean
  • 描述: 判断元素是否可接收键盘焦点
  • 示例:
    const focusable = element.is_keyboard_focusable();

is_enabled()

  • 返回值: Boolean
  • 描述: 判断元素是否可用
  • 示例:
    const isEnabled = element.is_enabled();

help_text()

  • 返回值: String
  • 描述: 获得帮助文本
  • 示例:
    const helpText = element.help_text();

culture()

  • 返回值: number
  • 描述: 获得区域化标识符
  • 示例:
    const culture = element.culture();

is_control_element()

  • 返回值: Boolean
  • 描述: 判断元素是否是控件元素
  • 示例:
    const isControl = element.is_control_element();

is_content_element()

  • 返回值: Boolean
  • 描述: 判断元素是否是内容元素
  • 示例:
    const isContent = element.is_content_element();

is_password()

  • 返回值: Boolean
  • 描述: 判断元素是否是密码框
  • 示例:
    const isPassword = element.is_password();

native_window_handle()

  • 返回值: number
  • 描述: 获得窗口句柄
  • 示例:
    const hwnd = element.native_window_handle();

item_type()

  • 返回值: String
  • 描述: 获得项类型
  • 示例:
    const itemType = element.item_type();

is_offscreen()

  • 返回值: Boolean
  • 描述: 判断元素是否处在屏幕外
  • 示例:
    const isOffscreen = element.is_offscreen();

orientation()

  • 返回值: String
  • 描述: 获得布局方向
  • 示例:
    const orientation = element.orientation();

framework_id()

  • 返回值: String
  • 描述: 获得框架ID
  • 示例:
    const frameworkId = element.framework_id();

is_required_for_form()

  • 返回值: Boolean
  • 描述: 判断元素是否需要验证
  • 示例:
    const isRequired = element.is_required_for_form();

is_data_valid_for_form()

  • 返回值: Boolean
  • 描述: 判断数据是否有效
  • 示例:
    const isValid = element.is_data_valid_for_form();

item_status()

  • 返回值: String
  • 描述: 获得项状态
  • 示例:
    const itemStatus = element.item_status();

bounding_rectangle()

  • 返回值: Rect
  • 描述: 获得元素边界矩形
  • 示例:
    const rect = element.bounding_rectangle();

get_element_show_context_menu()

  • 返回值: void
  • 描述: 显示上下文菜单
  • 示例:
    element.get_element_show_context_menu();

labeled_by()

  • 返回值: WinElement[]
  • 描述: 获得所有标签元素
  • 示例:
    const labels = element.labeled_by();

controller_for()

  • 返回值: WinElement[]
  • 描述: 获得所有控制元素
  • 示例:
    const controllers = element.controller_for();

described_by()

  • 返回值: WinElement[]
  • 描述: 获得所有描述元素
  • 示例:
    const descriptions = element.described_by();

flows_to()

  • 返回值: WinElement[]
  • 描述: 获得所有流程元素
  • 示例:
    const flows = element.flows_to();

provider_descriptio()

  • 返回值: String
  • 描述: 获得提供者描述
  • 示例:
    const providerDesc = element.provider_descriptio();

provider_set_focus()

  • 返回值: void
  • 描述: 设置提供者焦点
  • 示例:
    element.provider_set_focus();

try_focus()

  • 返回值: Boolean
  • 描述: 尝试获取焦点
  • 示例:
    const focused = element.try_focus();

clickable_point()

  • 返回值: Point
  • 描述: 获得可点击点
  • 示例:
    const point = element.clickable_point();

get_property_value(value: enums.UIProperty)

  • 返回值: String
  • 描述: 获得属性值
  • 示例:
    const propertyValue = element.get_property_value(enums.UIProperty.Name);

context_menu()

  • 返回值: void
  • 描述: 触发菜单
  • 示例:
    element.context_menu();

send_keys(keys: String, interval: number)

  • 返回值: void
  • 描述: 发送按键
  • 示例:
    element.send_keys("{Enter}", 100);

hold_send_keys(holdkeys: String, keys: String, interval: number)

  • 返回值: void
  • 描述: 按住按键发送其他按键
  • 示例:
    element.hold_send_keys("{Ctrl}", "{C}", 100);

hold_click(holdkeys: String)

  • 返回值: void
  • 描述: 按住按键并点击
  • 示例:
    element.hold_click("{Ctrl}");

click()

  • 返回值: void
  • 描述: 触发鼠标左键点击
  • 示例:
    element.click();

double_click()

  • 返回值: void
  • 描述: 触发鼠标双击点击
  • 示例:
    element.double_click();

right_click()

  • 返回值: void
  • 描述: 触发鼠标右键点击
  • 示例:
    element.right_click();

ElementExt 静态方法

listen

  • 描述: 开始监听元素变化。
  • 返回值: void
  • 参数: 无
  • 示例:
    ElementExt.listen();

get_path

  • 描述: 在指定超时时间内获得XPath路径信息。
  • 返回值: PathInfo[]
  • 参数:
    • timeout: number: 超时时间(毫秒)
  • 示例:
    const paths = ElementExt.get_path(5000);

parse

  • 描述: 解析XPath路径到元素。
  • 返回值: WinElement
  • 参数:
    • hwnd: number: 窗口句柄
    • path: String: XPath路径
    • timeout: number: 超时时间(毫秒)
  • 示例:
    const element = ElementExt.parse(hwnd, "//Button[@Name='Submit']", 5000);

parse_with_element

  • 描述: 通过已知元素解析XPath路径到目标元素。
  • 返回值: WinElement
  • 参数:
    • ele: WinElement: 已知元素
    • path: String: XPath路径
    • timeout: number: 超时时间(毫秒)
  • 示例:
    const targetElement = ElementExt.parse_with_element(parentElement, "./ChildElement", 5000);

enabled_automation

  • 描述: 启用自动化功能。
  • 返回值: number: 成功返回1,失败返回0
  • 参数:
    • hwnd: number: 窗口句柄
  • 示例:
    const result = ElementExt.enabled_automation(hwnd);

get_root_element

  • 描述: 获得根节点元素。
  • 返回值: WinElement
  • 参数: 无
  • 示例:
    const rootElement = ElementExt.get_root_element();

get_focused_element

  • 描述: 获得当前有焦点的元素。
  • 返回值: WinElement
  • 参数: 无
  • 示例:
    const focusedElement = ElementExt.get_focused_element();

get_point_element

  • 描述: 获得当前鼠标位置下的元素。
  • 返回值: WinElement
  • 参数: 无
  • 示例:
    const mouseElement = ElementExt.get_point_element();

get_Ime

  • 描述: 获得当前输入法模式。
  • 返回值: String: 输入法模式字符串
  • 参数:
    • hwnd: number: 窗口句柄
  • 示例:
    const imeMode = ElementExt.get_Ime(hwnd);

set_Ime

  • 描述: 设置输入状态。
  • 返回值: void
  • 参数:
    • ime_type: number: 输入法类型(0 英文,1 中文)
    • hwnd: number: 窗口句柄
  • 示例:
    ElementExt.set_Ime(1, hwnd);

find_task_bar

  • 描述: 根据任务栏标题模糊匹配并返回主窗口句柄。
  • 返回值: WinElement
  • 参数:
    • name: string: 窗口标题
    • timeout_ms: number: 超时时间(毫秒)
  • 示例:
    const windowElement = ElementExt.find_task_bar("Chrome", 5000);