Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
V
Vue-WebDriver
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
高源
Vue-WebDriver
Commits
902cef1d
Commit
902cef1d
authored
Nov 17, 2023
by
施晓雨
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
临时增加一个SDK的Review版本
parent
7d24de1b
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
76 additions
and
0 deletions
+76
-0
sdk-fix.js
src/sdk-fix.js
+76
-0
No files found.
src/sdk-fix.js
0 → 100644
View file @
902cef1d
/**
* 检测传入的XPath是否有表的存在,如果没有返回null
* @param {string[]} absolutePaths Xpath绝对路径集合
* @returns {object} 返回对象信息
*/
function
checkTableFromXpaths
(
absolutePaths
)
{
let
rtns
=
null
;
//先找到共同的根以及各路径在共同根下的相对路径
let
parent
=
getCommonParentXPath
(
absolutePaths
);
if
(
parent
==
null
||
parent
.
length
==
0
)
return
rtns
;
//如果找不到直接返回null
let
relativeXpaths
=
getRelativeXPaths
(
parent
,
absolutePaths
);
//根据相同的根找到绝对路径的相对路径
while
(
parent
.
length
>
0
)
{
if
(
verifyTable
(
parent
,
absolutePaths
))
break
;
//如果验证表结构成功,就可以退出了
parent
.
pop
();
//向上一级找
relativeXpaths
=
getRelativeXPaths
(
parent
,
absolutePaths
);
//重新获取相对路径
}
rtns
=
{
parent
:
parent
,
relativeXpaths
:
relativeXpaths
,
tableData
:
null
};
return
rtns
;
}
/**
* 返回多个元素XPath的共同父节点,返回数组以方便向上移动
* @param {string[]} absolutePaths Xpath绝对路径集合
* @returns {string[]} 返回string[]的共同的根的各部分的集合
*/
function
getCommonParentXPath
(
absolutePaths
)
{
let
rtns
=
null
;
if
(
!
absolutePaths
||
absolutePaths
.
length
===
0
)
{
return
rtns
;
}
let
splitPaths
=
absolutePaths
.
map
(
path
=>
path
.
split
(
'/'
));
// 分割每个路径为组成部分
rtns
=
[];
// 查找公共前缀
for
(
let
i
=
0
;
i
<
splitPaths
[
0
].
length
;
i
++
)
{
let
currentPart
=
splitPaths
[
0
][
i
];
if
(
splitPaths
.
every
(
path
=>
path
[
i
]
===
currentPart
))
{
// 检查所有路径是否有这个部分
rtns
.
push
(
currentPart
);
}
else
{
break
;}
//如果发现不同的,直接就可以退出了
}
return
rtns
;
}
/**
* 根据共同的父节点,获取各绝对路径的相对路径,这个方法分离开以便复用
* @param {string[]} parentXpath 父节点路径集合
* @param {string[]} absoluteXpaths 绝对路径集合
* @returns {string[]} 返回string[]的相对路径集合
*/
function
getRelativeXPaths
(
parentXpath
,
absoluteXpaths
)
{
let
rtns
=
[];
let
splitPaths
=
absolutePaths
.
map
(
path
=>
path
.
split
(
'/'
));
splitPaths
.
map
(
path
=>
rtns
.
push
(
path
.
slice
(
parentXpath
.
length
)));
return
rtns
;
}
/**
* 验证表结构是否正确
* @param {string[]} parentXPath 父节点路径集合
* @param {string[]} relativeXPaths 相对路径集合
* @returns {boolean} 返回true为表结构正确
*/
function
verifyTable
(
parentXPath
,
relativeXPaths
)
{
return
false
;
}
/**
* 根据路径信息获取表内的数据
* @param {string[]} parentXPath 父节点路径集合
* @param {string[]} relativeXPaths 相对路径集合
* @returns {any} 返回表内数据
*/
function
getTableData
(
parentXPath
,
relativeXPaths
)
{
let
rtns
=
null
;
return
rtns
;
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment