概述

session接口主要是针对手机连接的操作,如查找元素和设备操作

详情

find_all

获取手机中与选择器匹配的全部元素并返回元素列表

find_all(self, selector)
参数:

  • selector:要查找的选择器,支持以下格式:
    • 选择器名称:str 类型
    • 选择器对象:Selector 类型

返回值:

  • List[MobileElement]:手机元素列表

示例1:
在当前手机中查找并返回所有和选择器 好友名称 匹配的元素列表

  1. import xbot
  2. from xbot import print, sleep
  3. from .import package
  4. def main(args):
  5. session = xbot.mobile.connect_by_custom_name('我的安卓手机')
  6. elements = session.find_all('好友名称')

find

获取手机中与元素选择器匹配的元素

find(self, selector)
参数:

  • selector:要查找的选择器,支持以下格式:
    • 选择器名称:str 类型
    • 选择器对象:Selector 类型

返回值:

  • MobileElement:手机元素

示例1:
在当前窗口中获取与选择器 好友名称 匹配的元素并返回

  1. import xbot
  2. from xbot import print, sleep
  3. from .import package
  4. def main(args):
  5. session = xbot.mobile.connect_by_custom_name('我的安卓手机')
  6. element = session.find('好友名称')

find_all_by_id

获取手机中指定resource-id的全部元素并返回元素列表

find_all_by_id(self, id)
参数:

  • id:元素的resource-id属性值

返回值:

  • List[MobileElement]:手机元素列表

示例1:

  1. import xbot
  2. from xbot import print, sleep
  3. from .import package
  4. def main(args):
  5. session = xbot.mobile.connect_by_custom_name('我的安卓手机')
  6. elements = session.find_all_by_id('com.tencent.mm:id/ic')

find_by_id

获取手机中指定resource-id的元素

find_by_id(self, id)
参数:

  • id:元素的resource-id属性值

返回值:

  • MobileElement:手机元素

示例1:

  1. import xbot
  2. from xbot import print, sleep
  3. from .import package
  4. def main(args):
  5. session = xbot.mobile.connect_by_custom_name('我的安卓手机')
  6. element = session.find_by_id('com.tencent.mm:id/cj')

find_all_by_accessibility_id

获取手机中指定accessibility_id的全部元素并返回元素列表

find_all_by_accessibility_id(self, accessibility_id)
参数:

  • accessibility_id:元素的content-desc属性值

返回值:

  • List[MobileElement]:手机元素列表

示例1:

  1. import xbot
  2. from xbot import print, sleep
  3. from .import package
  4. def main(args):
  5. session = xbot.mobile.connect_by_custom_name('我的安卓手机')
  6. elements = session.find_all_by_accessibility_id('icon')

find_by_accessibility_id

获取手机中指定accessibility_id的元素

find_by_accessibility_id(self, accessibility_id)
参数:

  • accessibility_id:元素的content-desc属性值

返回值:

  • MobileElement:手机元素

示例1:

  1. import xbot
  2. from xbot import print, sleep
  3. from .import package
  4. def main(args):
  5. session = xbot.mobile.connect_by_custom_name('我的安卓手机')
  6. element = session.find_by_accessibility_id('icon')

find_all_by_label_name

获取手机中指定label_name的全部元素并返回元素列表

find_all_by_label_name(self, label_name)
参数:

  • label_name:元素的class属性值/元素的标签名

返回值:

  • List[MobileElement]:手机元素列表

示例1:

  1. import xbot
  2. from xbot import print, sleep
  3. from .import package
  4. def main(args):
  5. session = xbot.mobile.connect_by_custom_name('我的安卓手机')
  6. elements = session.find_all_by_label_name('android.widget.TextView')

find_by_label_name

获取手机中指定label_name的元素

find_by_label_name(self, label_name)
参数:

  • label_name:元素的class属性值/元素的标签名

返回值:

  • MobileElement:手机元素

示例1:

  1. import xbot
  2. from xbot import print, sleep
  3. from .import package
  4. def main(args):
  5. session = xbot.mobile.connect_by_custom_name('我的安卓手机')
  6. element = session.find_by_label_name('android.widget.TextView')

find_all_by_xpath

获取手机中指定xpath的全部元素并返回元素列表

find_all_by_xpath(self, xpath)
参数:

  • xpath:元素的xpath路径

返回值:

  • List[MobileElement]:手机元素列表

示例1:

  1. import xbot
  2. from xbot import print, sleep
  3. from .import package
  4. def main(args):
  5. session = xbot.mobile.connect_by_custom_name('我的安卓手机')
  6. elements = session.find_all_by_xpath('/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.TabHost/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.TabWidget/android.widget.FrameLayout[1]/android.widget.RelativeLayout/android.widget.TextView')

find_by_xpath

获取手机中指定xpath的元素

find_by_xpath(self, xpath)
参数:

  • xpath:元素的xpath路径

返回值:

  • MobileElement:手机元素

示例1:

  1. import xbot
  2. from xbot import print, sleep
  3. from .import package
  4. def main(args):
  5. session = xbot.mobile.connect_by_custom_name('我的安卓手机')
  6. element = session.find_by_xpath('/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.TabHost/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.TabWidget/android.widget.FrameLayout[1]/android.widget.RelativeLayout/android.widget.TextView')

find_all_by_uiautomator_selector

获取手机中指定uiautomator_selector的全部元素并返回元素列表

find_all_by_uiautomator_selector(self, uiautomator_selector)
参数:

  • uiautomator_selector:元素的android selector path

返回值:

  • List[MobileElement]:手机元素列表

示例1:

  1. import xbot
  2. from xbot import print, sleep
  3. from .import package
  4. def main(args):
  5. session = xbot.mobile.connect_by_custom_name('我的安卓手机')
  6. elements = session.find_all_by_uiautomator_selector('new UiSelector().className(\"android.widget.ImageView\")')

find_by_uiautomator_selector

获取手机中指定uiautomator_selector的元素

find_by_uiautomator_selector(self, uiautomator_selector)
参数:

  • uiautomator_selector:元素的android selector path

返回值:

  • MobileElement:手机元素

示例1:

  1. import xbot
  2. from xbot import print, sleep
  3. from .import package
  4. def main(args):
  5. session = xbot.mobile.connect_by_custom_name('我的安卓手机')
  6. element = session.find_by_uiautomator_selector('new UiSelector().className(\"android.widget.ImageView\")')

contains_element

当前手机中是否包含与元素选择器匹配的元素

contains_element(self, selector)
参数:

  • selector:要查找的选择器,支持以下格式:
    • 选择器名称:str 类型
    • 选择器对象:Selector 类型

返回值:

  • bool:如果手机包含目标元素则返回True,否则返回False

示例1:
判断当前手机中是否包含与元素选择器 聊天输入框 匹配的元素

  1. import xbot
  2. from xbot import print, sleep
  3. from .import package
  4. def main(args):
  5. session = xbot.mobile.connect_by_custom_name('我的安卓手机')
  6. if session.contains_element('聊天输入框') == True:
  7. print('元素存在')
  8. else:
  9. print('元素不存在')

click

单机手机屏幕指定位置

click(self, point_x, point_y, *, delay_after=1)
参数:

  • point_x:目标点的横向坐标
  • point_y:目标点的纵向坐标
  • delay_after:执行成功后延迟时间,默认延迟1s

返回值:

示例1:
点击屏幕 (500, 500) 处

  1. import xbot
  2. from xbot import print, sleep
  3. from .import package
  4. def main(args):
  5. session = xbot.mobile.connect_by_custom_name('我的安卓手机')
  6. session.click(500, 500)

dblclick

双击手机屏幕指定位置

dblclick(self, point_x, point_y, *, delay_after=1)
参数:

  • point_x:目标点的横向坐标
  • point_y:目标点的纵向坐标
  • delay_after:执行成功后延迟时间,默认延迟1s

返回值:

示例1:
双击屏幕 (500, 500) 处

  1. import xbot
  2. from xbot import print, sleep
  3. from .import package
  4. def main(args):
  5. session = xbot.mobile.connect_by_custom_name('我的安卓手机')
  6. session.dblclick(500, 500)

_

longpress

长按手机屏幕指定位置

dblclick(self, point_x, point_y, *, delay_after=1)
参数:

  • point_x:目标点的横向坐标
  • point_y:目标点的纵向坐标
  • delay_after:执行成功后延迟时间,默认延迟1s

返回值:

示例1:
长按屏幕 (500, 500) 处

  1. import xbot
  2. from xbot import print, sleep
  3. from .import package
  4. def main(args):
  5. session = xbot.mobile.connect_by_custom_name('我的安卓手机')
  6. session.longpress(500, 500)

swipe

在手机屏幕上滑动手指

swipe(self, start_point_x, start_point_y, end_point_x, end_point_y, *, swipe_time=800, delay_after=1)
参数:

  • start_point_x:滑动起始点横向坐标
  • start_point_y:滑动起始点纵向坐标
  • end_point_x:滑动结束点横向坐标
  • end_point_y:滑动结束点纵向坐标
  • swipe_time:滑动总时间
  • delay_after:执行成功后延迟时间,默认延迟1s

返回值:

示例1:
模拟手指在屏幕上向上滑动

  1. import xbot
  2. from xbot import print, sleep
  3. from .import package
  4. def main(args):
  5. session = xbot.mobile.connect_by_custom_name('我的安卓手机')
  6. session.swipe(500, 1200, 500, 200)

back

后退

back(self, delay_after=1)
参数:

  • delay_after:执行成功后延迟时间,默认延迟1s

返回值:

示例1:

  1. import xbot
  2. from xbot import print, sleep
  3. from .import package
  4. def main(args):
  5. session = xbot.mobile.connect_by_custom_name('我的安卓手机')
  6. session.back()

home

主页

home(self, delay_after=1)
参数:

  • delay_after:执行成功后延迟时间,默认延迟1s

返回值:

示例1:

  1. import xbot
  2. from xbot import print, sleep
  3. from .import package
  4. def main(args):
  5. session = xbot.mobile.connect_by_custom_name('我的安卓手机')
  6. session.home()

switchapp

切换应用

switchapp(self, delay_after=1)
参数:

  • delay_after:执行成功后延迟时间,默认延迟1s

返回值:

示例1:

  1. import xbot
  2. from xbot import print, sleep
  3. from .import package
  4. def main(args):
  5. session = xbot.mobile.connect_by_custom_name('我的安卓手机')
  6. session.switchapp()

enter

回车确认

enter(self, delay_after=1)
参数:

  • delay_after:执行成功后延迟时间,默认延迟1s

返回值:

示例1:

  1. import xbot
  2. from xbot import print, sleep
  3. from .import package
  4. def main(args):
  5. session = xbot.mobile.connect_by_custom_name('我的安卓手机')
  6. session.enter()

getoriention

获取手机当前的屏幕方向

getoriention(self)
参数:

返回值:

  • int:横屏返回 0, 竖屏返回 1

示例1:

  1. import xbot
  2. from xbot import print, sleep
  3. from .import package
  4. def main(args):
  5. session = xbot.mobile.connect_by_custom_name('我的安卓手机')
  6. session.getoriention()

setoriention

设置手机的屏幕方向

setoriention(self, screenOrientation:int)
参数:

  • screenOrientation:横屏为 0, 竖屏为 1

返回值:

示例1:

  1. import xbot
  2. from xbot import print, sleep
  3. from .import package
  4. def main(args):
  5. session = xbot.mobile.connect_by_custom_name('我的安卓手机')
  6. session.setoriention(0)

screenshot

对手机屏幕进行截图并保存

screenshot(self, folder_path, *, filename=None)
参数:

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

返回值:

示例1:
对手机屏幕进行截图,并将结果保存到D盘根目录下,文件名根据当前时间自动生成

  1. import xbot
  2. from xbot import print, sleep
  3. from .import package
  4. def main(args):
  5. session = xbot.mobile.connect_by_custom_name('我的安卓手机')
  6. session.screenshot('D:\\')

get_page_source

获取手机当前页面的树结构信息,返回XML结构的字符串

get_page_source(self)
参数:

返回值:

  • 获取到的UI树

示例1:

  1. import xbot
  2. from xbot import print, sleep
  3. from .import package
  4. def main(args):
  5. session = xbot.mobile.connect_by_custom_name('我的安卓手机')
  6. page_source = session.get_page_source()

get_window_size

获取手机分辨率

get_window_size(self)
参数:

返回值:

  • tuple:返回元组,格式为(width, height)

示例1:获取手机屏幕大小

  1. import xbot
  2. from xbot import print, sleep
  3. from .import package
  4. def main(args):
  5. session = xbot.mobile.connect_by_custom_name('我的安卓手机')
  6. page_source = session.get_window_size()

get_clipboard_text

获取剪贴板文本内容

get_clipboard_text(self)
参数:

返回值:

  • str:返回文本内容

示例1:

  1. import xbot
  2. from xbot import print, sleep
  3. from .import package
  4. def main(args):
  5. session = xbot.mobile.connect_by_custom_name('我的安卓手机')
  6. text = session.get_clipboard_text()
  7. print(text)

set_clipboard_text

设置剪贴板文本内容

set_clipboard_text(self, value)
参数:

  • value:文本内容

返回值:

示例1:

  1. import xbot
  2. from xbot import print, sleep
  3. from .import package
  4. def main(args):
  5. session = xbot.mobile.connect_by_custom_name('我的安卓手机')
  6. session.set_clipboard_text('hello影刀')

push_file

将本机PC中的指定文件推送到手机中的指定位置

push_file(self, file_path, path_on_device)
参数:

  • file_path:本地PC中的文件
  • path_on_device:手机中的指定位置

返回值:

示例1:

  1. import xbot
  2. from xbot import print, sleep
  3. from .import package
  4. def main(args):
  5. session = xbot.mobile.connect_by_custom_name('我的安卓手机')
  6. session.push_file(r'c:\test.txt', r'/storage/sdcard0/test.txt')

pull_file

拉取手机中的指定文件,并保存到本机PC中的指定位置

pull_file(self, path_on_device, file_path)
参数:

  • path_on_device:手机中的指定文件位置
  • file_path:本机PC中的指定位置

返回值:

示例1:

  1. import xbot
  2. from xbot import print, sleep
  3. from .import package
  4. def main(args):
  5. session = xbot.mobile.connect_by_custom_name('我的安卓手机')
  6. session.pull_file(r'/storage/sdcard0/test.txt', r'c:\test.txt')

get_session_detail

获取手机连接信息详情

get_session_detail(self)
参数:

返回值:

  • dict:返回连接信息详情

close

关闭此手机连接

close(self)
参数:

返回值:

示例1:

  1. import xbot
  2. from xbot import print, sleep
  3. from .import package
  4. def main(args):
  5. session = xbot.mobile.connect_by_custom_name('我的安卓手机')
  6. session.close()