From 9692b1512452e8a77d419b771d4b6ebcfd34a1c8 Mon Sep 17 00:00:00 2001 From: zhenyuWang <13641039885@163.com> Date: Mon, 26 Jun 2023 10:51:55 +0800 Subject: [PATCH] wip(uts): automator page.$ $$ --- .../uni-app-uts/lib/automator/apis/Page.uts | 41 ++++++++++++++++++- packages/uni-app-uts/lib/automator/index.uts | 11 +++++ 2 files changed, 50 insertions(+), 2 deletions(-) diff --git a/packages/uni-app-uts/lib/automator/apis/Page.uts b/packages/uni-app-uts/lib/automator/apis/Page.uts index e8a909218f..f62341f116 100644 --- a/packages/uni-app-uts/lib/automator/apis/Page.uts +++ b/packages/uni-app-uts/lib/automator/apis/Page.uts @@ -27,9 +27,9 @@ export const pageSetData = (params: SetDataParams): void => { const page = getPageVm(pageId) if (page !== null) { setData(page, params.data) - callback({ result: { errMsg: 'setData: ok.' } }) + callback({ result: { errMsg: 'Page.setData: ok.' } }) } else { - callback({ result: { errMsg: `setData:fail, Page:${pageId} is not found.` } }) + callback({ result: { errMsg: `Page.setData:fail, Page:${pageId} is not found.` } }) } } export type CallMethodParams = { @@ -50,3 +50,40 @@ export const callMethod = (params: CallMethodParams): void => { params.callback({result: {result}}) } } + +export type GetElementParams = { + pageId: number + selector: string + callback: (res?: any | null) => void +} + +export const getElement = (params: GetElementParams): void => { + const page = getPageVm(params.pageId) + if (page === null) { + params.callback({ result: { errMsg: `Page[${params.pageId}] not exists` } }) + } else { + const element = page.$querySelector(params.selector) + const result = { + elementId: element !== null ? element.id : null, + tagName: element !== null ? element.tagName : null + } + params.callback(result) + } +} + +export const getElements = (params: GetElementParams): void => { + const page = getPageVm(params.pageId) + if (page === null) { + params.callback({ result: { errMsg: `Page[${params.pageId}] not exists` } }) + } else { + const elements = page.$querySelectorAll(params.selector) + const result = [] as UTSJSONObject[] + elements?.forEach(element => { + result.push({ + elementId: element.id, + tagName: element.tagName + }) + }) + params.callback({ elements: result }) + } +} diff --git a/packages/uni-app-uts/lib/automator/index.uts b/packages/uni-app-uts/lib/automator/index.uts index 03348917ba..849aaa6712 100644 --- a/packages/uni-app-uts/lib/automator/index.uts +++ b/packages/uni-app-uts/lib/automator/index.uts @@ -17,6 +17,9 @@ import { SetDataParams, CallMethodParams, callMethod as pageCallMethod, + GetElementParams as PageGetElementParams, + getElement as pageGetElement, + getElements as pageGetElements, } from './apis/Page.uts' import { socketEmitter, SocketEmitterParams } from './apis/App/Socket.uts' @@ -89,6 +92,14 @@ function onMessage(msg: string) { const args = ((params['args'] as UTSJSONObject).toJSONObject() as JSONArray).toUTSArray() pageCallMethod({ pageId, method, args, callback } as CallMethodParams) break + case 'Page.getElement': + const selector = params['selector'] as string + pageGetElement({ pageId, selector, callback } as PageGetElementParams) + break + case 'Page.getElements': + const selector = params['selector'] as string + pageGetElements({ pageId, selector, callback } as PageGetElementParams) + break } } } catch (error) { -- GitLab