xbot.win32.Element

概述

element接口主要是对win32元素的处理,如元素点击、输入框填写、复选框和下拉框操作已经元素属性值的获取和设置等

详情

parent

获取当前元素的父元素

parent(self)

参数

返回值

  • Win32Element:返回当前元素的父元素

示例1

通过Chrome浏览器打开 百度 网页并返回和元素选择器 百度一下 匹配的元素对象,然后获取该对象的父对象

def main(args):
    window = xbot.win32.get('记事本')
    win_element = window.find('菜单项目_文件F')
    parent_element = win_element.parent()

children

获取当前元素的所有子元素

children(self)

参数

返回值

  • List:返回当前元素的所有子元素

示例1

通过Chrome浏览器打开 百度 网页并返回和元素选择器 百度一下 匹配的元素对象,然后获取该对象的子对象

def main(args):
    window = xbot.win32.get('记事本')
    win_element = window.find('菜单栏_应用程序')
    children_elements = win_element.children()

child_at

获取指定位置的子元素

child_at(self)

参数

  • index:子元素的位置索引,从0开始计数

返回值

  • Win32Element:返回指定位置的子元素

示例1

def main(args):
    window = xbot.win32.get('记事本')
    win_element = window.find('菜单栏_应用程序')
    child_element = win_element.child_at(0)

next_sibling

获取下一个并列的兄弟元素 next_sibling(self)

参数

返回值

  • Win32Element:返回下一个并列的兄弟元素

示例1

def main(args):
    window = xbot.win32.get('记事本')
    win_element = window.find('菜单项目_文件F')
    sibling_element = win_element.next_sibling()

click

单击win32元素

click(self, button='left', simulative=True, keys='none', delay_after=1, move_mouse=True, anchor=None)

参数

  • button:单击时鼠标按下的按键, 默认为鼠标左键
    • 'left':鼠标左键
    • 'right':鼠标右键
  • simulative:是否模拟人工点击, 默认为True,模拟人工点击
  • keys:鼠标单击时使用的键盘辅助按键, 如Alt键, Ctrl键等, 可谓空, 默认为空
    • 'none':不需要键盘辅助按键
    • 'alt':键盘Alt键
    • 'ctrl':键盘Ctrl键
    • 'shift':键盘Shift键
    • 'win':键盘Win键
  • delay_after:执行成功后延迟时间,默认延迟1s
  • move_mouse:是否显示鼠标移动轨迹, 默认为True,显示鼠标移动轨迹
  • anchor:锚点,鼠标点击元素的位置以及偏移量元组,可为 None,默认值为 None,为 None 时默认点击目标中心且无偏移量,参数结构如下:
    • sudoku_part:鼠标悬停的位置, 默认悬停在中心
      • 'topLeft':悬停左上角
      • 'topCenter':悬停在上中部
      • 'topRight':悬停在右上角
      • 'middleLeft':悬停在左中部
      • 'middleCenter':悬停在中心
      • 'middleRight':悬停在右中部
      • 'bottomLeft':悬停左下角
      • 'bottomCenter':悬停在下中部
      • 'bottomRight':悬停在右下角
    • offset_x:鼠标位置的水平偏移量
    • offset_y':鼠标位置的垂直偏移量

返回值

实列1

获取 编辑文本编辑器 窗口并用鼠标左键点击 菜单项目文件F 元素,点击的同时按下 Alt 键

from xbot import win32
def main(args):
    wnd = win32.get('编辑_文本编辑器')
    win32_element = wnd.find('菜单项目_文件F')
    win32_element.click('left', True, 'alt', 1, True, anchor=('middleCenter', 100, 100))

dblclick

双击win32元素

dblclick(self, simulative=True, delay_after=1, move_mouse=True, anchor=None)

参数

  • simulative:是否模拟人工点击, 默认为True,模拟人工点击
  • delay_after:执行成功后延迟时间, 默认延迟1s
  • move_mouse:是否显示鼠标移动轨迹, 默认为True,显示鼠标移动轨迹
  • anchor:锚点,鼠标点击元素的位置以及偏移量元组,可为 None,默认值为 None,为 None 时默认点击目标中心且无偏移量,参数结构如下:
    • sudoku_part:鼠标悬停的位置, 默认悬停在中心
      • 'topLeft':悬停左上角
      • 'topCenter':悬停在上中部
      • 'topRight':悬停在右上角
      • 'middleLeft':悬停在左中部
      • 'middleCenter':悬停在中心
      • 'middleRight':悬停在右中部
      • 'bottomLeft':悬停左下角
      • 'bottomCenter':悬停在下中部
      • 'bottomRight':悬停在右下角
    • offset_x:鼠标位置的水平偏移量
    • offset_y':鼠标位置的垂直偏移量

返回值

示例1

获取 编辑文本编辑器 窗口并用鼠标左键双击 菜单项目文件F 元素

from xbot import win32
from . import package
def main(args):
    wnd = win32.get('编辑_文本编辑器')
    win32_element = wnd.find('菜单项目_文件F')
    win32_element.dblclick(True, 1, True, anchor=('middleCenter', 100, 100))

input

填写win32输入框

input(self, text: str, simulative=True, append=False, contains_hotkey=False, delay_after=1, anchor=None,focus_timeout=1000)

参数

  • text:需要填写到win32输入框中的文本内容

  • simulative:是否模拟人工输入,模拟人工输入时会有明显的输入效果,非模拟人工输入时目标内容将会直接出现在输入框中, 默认为True,模拟人工输入

  • append:是否追加输入,追加输入会保留输入框中原有内容,在原有内容最后面追加写入内容,非追加时写入会覆盖输入框中原有内容,默认值为False,非追加写入
  • contains_hotkey:输入内容是否包含快捷键,该选项只有在模拟人工输入时起效,默认值为False,不包含快捷键
  • delay_after:执行成功后延迟时间, 默认延迟1s
  • anchor:锚点,鼠标点击元素的位置以及偏移量元组,可为 None,默认值为 None,为 None 时默认点击目标中心且无偏移量,参数结构如下:
    • sudoku_part:鼠标悬停的位置, 默认悬停在中心
      • 'topLeft':悬停左上角
      • 'topCenter':悬停在上中部
      • 'topRight':悬停在右上角
      • 'middleLeft':悬停在左中部
      • 'middleCenter':悬停在中心
      • 'middleRight':悬停在右中部
      • 'bottomLeft':悬停左下角
      • 'bottomCenter':悬停在下中部
      • 'bottomRight':悬停在右下角
    • offset_x:鼠标位置的水平偏移量
    • offset_y':鼠标位置的垂直偏移量
  • focus_timeout, 焦点超时时间(获取焦点和输入操作的间隔),默认1000毫秒

返回值

实列1

获取 编辑_文本编辑器 窗口并在 输入框 元素中输入 helloworld

from xbot import win32
from . import package

def main(args):
    wnd = win32.get('编辑_文本编辑器')
    win32_element = wnd.find('输入框')
    win32_element.input('helloworld', True, True, False, 1, 
                        anchor=('middleCenter', 100, 100))

实列2

获取 编辑_文本编辑器 窗口并在 输入框 元素中输入 回车

from xbot import win32
from . import package

def main(args):
    wnd = win32.get('编辑_文本编辑器')
    win32_element = wnd.find('输入框')
    win32_element.input('{enter}', True, False, True, 1,
                       anchor=('middleCenter', 100, 100))

实列1

获取 编辑_文本编辑器 窗口并在 输入框 元素中输入 helloworld

from xbot import win32
from . import package

def main(args):
    wnd = win32.get('中国民生银行个人网上银行 - Internet Explorer')
    win32_element = wnd.find('民生银行_账号')
    win32_element.input('123456789', False)
    win32_element = wnd.find('民生银行_密码')
    win32_element.driver_input('987654321', 1)

clipboard_input

使用剪切板填写win32输入框(能够有效避免输入法带来的问题)

clipboard_input(self, text: str, append=False, delay_after=1, anchor=None,focus_timeout=1000)

参数

  • text:需要填写到win32输入框中的文本内容
  • append:是否追加输入,追加输入会保留输入框中原有内容,在原有内容最后面追加写入内容,非追加时写入会覆盖输入框中原有内容,默认值为False,非追加写入
  • delay_after:执行成功后延迟时间, 默认延迟1s
  • anchor:锚点,鼠标点击元素的位置以及偏移量元组,可为 None,默认值为 None,为 None 时默认点击目标中心且无偏移量,参数结构如下:
    • sudoku_part:鼠标悬停的位置, 默认悬停在中心
      • 'topLeft':悬停左上角
      • 'topCenter':悬停在上中部
      • 'topRight':悬停在右上角
      • 'middleLeft':悬停在左中部
      • 'middleCenter':悬停在中心
      • 'middleRight':悬停在右中部
      • 'bottomLeft':悬停左下角
      • 'bottomCenter':悬停在下中部
      • 'bottomRight':悬停在右下角
    • offset_x:鼠标位置的水平偏移量
    • offset_y':鼠标位置的垂直偏移量
  • focus_timeout, 焦点超时时间(获取焦点和输入操作的间隔),默认1000毫秒

返回值

示例1

获取 编辑_文本编辑器 窗口并使用剪切板输入往 输入框 元素中输入 helloworld

from xbot import win32
from . import package

def main(args):
    wnd = win32.get('编辑_文本编辑器')
    win32_element = wnd.find('输入框')
    win32_element.clipboard_input('helloworld', False, 1,
                                 anchor=('middleCenter', 100, 100))

hover

鼠标悬停在win32元素上

hover(self, simulative=True, delay_after=1)

参数

  • simulative:是否模拟人工悬停,模拟人工悬停会有明显的鼠标移动轨迹,非模拟人工时鼠标会瞬间悬停在win32元素上,默认值为True,模拟人工悬停
  • delay_after:执行成功后延迟时间, 默认延迟1s

返回值

示例1

获取 编辑_文本编辑器 窗口并将鼠标悬停在 输入框 元素上

from xbot import win32
from . import package

def main(args):
    wnd = win32.get('编辑_文本编辑器')
    win32_element = wnd.find('输入框')
    win32_element.hover(True, 1)

check

设置win32复选框是否选中

check(self, mode='check', delay_after=1)

参数

  • mode:win32复选框的设置状态, 默认为check选中
    • 'check':选中
    • 'uncheck':取消选中
  • delay_after:执行成功后延迟时间, 默认延迟1s

返回值

示例1

获取 窗口_QQ 窗口并勾选 自动登录 复选框

from xbot import win32
from . import package

def main(args):
    wnd = win32.get('窗口_QQ')
    win32_element = wnd.find('自动登录')
    win32_element.check('check', 1)

select

根据下拉项内容设置win32下拉框内容

select(self, item: str, mode='fuzzy', delay_after=1)

参数

  • item:要设置的某一项的文本内容
  • mode:对设置项文本内容的匹配模式, 默认为模糊匹配
    • 'fuzzy':模糊匹配
    • 'exact':精确匹配
    • 'regex':正则匹配
  • delay_after:执行成功后延迟时间, 默认延迟1s

返回值

示例1

使用精准匹配,设置win32下拉框选中项为内容是 helloword 的项

from xbot import win32
from . import package

def main(args):
    wnd = win32.get('窗口_QQ')
    win32_element = wnd.find('QQ号码')
    win32_element.click()
    win32_element = wnd.find('xxx')
    win32_element.select('helloword', 'fuzzy', 1)

示例3

使用正则表达式匹配,设置win32下拉框选中项为内容是以h开头以d结尾的项

from xbot import win32
from . import package

def main(args):
    wnd = win32.get('窗口_QQ')
    win32_element = wnd.find('QQ号码')
    win32_element.click()
    win32_element = wnd.find('xxx')
    win32_element.select('h.+d/', 'regex', 1)

select_by_index

根据目标项的下标设置下拉框内容

select_by_index(self, index: int, delay_after=1)

参数

  • index:要设置的目标项的下标, 小标位置从0开始
  • delay_after:执行成功后延迟时间, 默认延迟1s

返回值

示例1

设置win32下拉框选中项为下标为 1 项

from xbot import win32
from . import package

def main(args):
    wnd = win32.get('窗口_QQ')
    win32_element = wnd.find('QQ号码')
    win32_element.click()
    win32_element = wnd.find('xxx')
    win32_element.select_by_index(1, 1)

set_value

给win32元素设置值

set_value(self, value: str)

参数

  • value:要设置给win32元素的文本值

返回值

示例1

设置win32元素的值为 helloword

from xbot import win32
from . import package

def main(args):
    wnd = win32.get_by_selector(package.selector('窗口_QQ'))
    win32_element = wnd.find(package.selector('QQ号码'))
    win32_element.set_value('helloword')

get_attribute

获取win32元素的属性值

get_attribute(self, name: str)

参数

  • name:win32元素的属性值

返回值

  • str:返回win32元素的目标属性值

示例1

获取win32元素属性 height 的值

from xbot import win32
from . import package

def main(args):
    wnd = win32.get_by_selector(package.selector('窗口_QQ'))
    win32_element = wnd.find(package.selector('QQ号码'))
    height = win32_element.get_attribute('height')

get_all_attributes

获取win32元素的全部属性值

get_all_attributes(self)

参数

返回值

  • typing.List[typing.Tuple]:返回win32元素的全部属性名与属性值的组合列表如[('name', 'hello'), ('height', '100')]

示例1

获取桌面新建文本文档的全部属性值

from xbot import win32

def main(args):
    wHnd = win32.get_desktop()
    element = wHnd.find('新建文本文档')
    attributes = element.get_all_attributes()

get_text

获取win32元素的文本内容

get_text(self)

参数

返回值

  • str:返回win32元素的文本内容

示例1

获取 文本框 中的文本内容

from xbot import win32

def main(args):
    wnd = win32.get('新建文本')
    win32_element = wnd.find('文本框')
    height = win32_element.get_text()

get_value

获取win32元素的详细信息

get_value(self)

参数

返回值

  • str:返回win32元素的详细信息

示例1

获取win32元素的纤细信息

from xbot import win32
from . import package

def main(args):
    wnd = win32.get_by_selector(package.selector('窗口_QQ'))
    win32_element = wnd.find(package.selector('QQ号码'))
    win32_element_value = win32_element.get_value()

drag_to

将win32元素拖拽到指定位置

drag_to(self, simulative=True, behavior='smooth', top=0, left=0, delay_after=1)

参数

  • simulative:是否模拟人工拖拽,默认人工拖拽会有明显的拖拽移动痕迹,非模拟人工拖住会瞬间将win32元素拖拽到指定位置,默认值为True模拟人工拖拽
  • behavior:拖拽方式, 默认为平滑拖拽
    • 'smooth':平滑拖拽
    • 'instant':瞬间拖拽
  • top, 相对于当前元素中心的纵向位移
  • left, 相对于当前元素中心的横向位移
  • delay_after, 执行成功后延迟时间, 默认延迟1s

返回值

示例1

模拟人工,平滑的将win32元素移动到 x:100,y:100 的位置

from xbot import win32
from . import package

def main(args):
    wnd = win32.get_by_selector(package.selector('窗口_QQ'))
    win32_element = wnd.find(package.selector('QQ号码'))
    win32_element.drag_to(True, 'smooth', 100, 100, 1)

screenshot

对win32元素进行截图并保存

screenshot(self, folder_path, * , filename=None)

参数

  • folder_path, 截图保存的路径
  • filename, 截图保存时的文件名, 可为空, 为空时会更具当前时间自动生成文件名

返回值

示例1

对win32元素进行截图,并将结果保存到D盘根目录下,文件名根据当前时间自动生成

from xbot import win32 

def main(args):
    win32.element._win32_element_cache.screenshot('D:\\')

示例2

对win32元素进行截图,并将结果保存到D盘根目录下,文件名为 123.png

from xbot import win32
from . import package
def main(args):
    wnd = win32.get_by_selector(package.selector('窗口_QQ'))
    win32_element = wnd.find(package.selector('QQ号码'))
    win32_element.screenshot('D:\\', filename='123.png')

screenshot_to_clipboard

对win32元素截图,并将截图添加到剪切板中

screenshot_to_clipboard(self)

参数

返回值

示例1

对win32元素截图,并将截图添加到剪切板中

from xbot import win32
from . import package

def main(args):
    wnd = win32.get_by_selector(package.selector('窗口_QQ'))
    win32_element = wnd.find(package.selector('QQ号码'))
    win32_element.screenshot_to_clipboard()

get_bounding

获取win32元素边框信息

get_bounding(self, to96dpi = True)

参数

  • to96dpi:是否将获取的到元素边框信息转换为96dpi下的值,,默认值为True需要转换

返回值

  • tuple:返回一组win32元素边框信息, 如('x', 'y', 'width', 'height')

示例1

获取win32元素的边框信息,并将结果转为96dpi对应的值

from xbot import win32
from . import package

def main(args):
    wnd = win32.get_by_selector(package.selector('窗口_QQ'))
    win32_element = wnd.find(package.selector('QQ号码'))
    bound = win32_element.get_bounding(True)

get_all_select_items

获取win32下拉框元素的全部下拉选项

get_all_select_items(self)

参数

返回值

  • typing.list[str]:返回当前win32下拉框元素全部下拉选项

示例1

获取 demo center 窗口中的 下拉框 元素的全部下拉选项

from xbot import win32

def main(args):
    hWnd = win32.get_by_selector('demo center')
    element = hWnd.find('下拉框')
    values = element.get_all_select_items()

get_selected_item

获取win32下拉框元素当前选中的全部下拉选项

get_selected_item(self)

参数

返回值

  • typing.list[str]:返回当前win32下拉框元素当前选中的全部下拉选项

示例1

获取 demo center 窗口中的 下拉框 元素的当前选中的全部下拉选项

from xbot import win32

def main(args):
    hWnd = win32.get_by_selector('demo center')
    element = hWnd.find('下拉框')
    values = element.get_selected_item()
问题没有解决?去社区提问 all right reserved,powered by Gitbook

results matching ""

    No results matching ""