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
91d1b6ad
Commit
91d1b6ad
authored
Nov 17, 2023
by
施晓雨
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
更新sdk-fix
parent
902cef1d
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
12 additions
and
13 deletions
+12
-13
sdk-fix.js
src/sdk-fix.js
+12
-13
No files found.
src/sdk-fix.js
View file @
91d1b6ad
/**
* 检测传入的XPath是否有表的存在,如果没有返回null
* @param {
string[]} absolutePaths Xpath绝对路径集合
* @returns {
object} 返回对象信息
* @param {
object[]} tags 元素集合{xpath=XPath,name=返回的属性名,title=标题信息,type=操作类型:文本,链接,元素路径(点击动作用),relativePath=相对路径(最终的)}
* @returns {
any} 返回对象信息{}
*/
function
checkTableFromXpaths
(
absolutePath
s
)
{
function
checkTableFromXpaths
(
tag
s
)
{
let
rtns
=
null
;
//先找到共同的根以及各路径在共同根下的相对路径
let
parent
=
getCommonParentXPath
(
absolutePath
s
);
let
parent
=
getCommonParentXPath
(
tag
s
);
if
(
parent
==
null
||
parent
.
length
==
0
)
return
rtns
;
//如果找不到直接返回null
let
relativeXpaths
=
getRelativeXPaths
(
parent
,
absolutePaths
);
//根据相同的根找到绝对路径的相对路径
while
(
parent
.
length
>
0
)
{
...
...
@@ -14,6 +14,8 @@ function checkTableFromXpaths(absolutePaths) {
parent
.
pop
();
//向上一级找
relativeXpaths
=
getRelativeXPaths
(
parent
,
absolutePaths
);
//重新获取相对路径
}
if
(
parent
.
length
===
0
)
return
rtns
;
//如果父对象都为空了,直接返回null
let
tableData
=
getTableData
(
parent
,
relativeXpaths
);
//根据验证后的信息来获取表
rtns
=
{
parent
:
parent
,
relativeXpaths
:
relativeXpaths
,
...
...
@@ -26,17 +28,14 @@ function checkTableFromXpaths(absolutePaths) {
* @param {string[]} absolutePaths Xpath绝对路径集合
* @returns {string[]} 返回string[]的共同的根的各部分的集合
*/
function
getCommonParentXPath
(
absolutePath
s
)
{
function
getCommonParentXPath
(
tag
s
)
{
let
rtns
=
null
;
if
(
!
absolutePaths
||
absolutePaths
.
length
===
0
)
{
return
rtns
;
}
let
splitPaths
=
absolutePaths
.
map
(
path
=>
path
.
split
(
'/'
));
// 分割每个路径为组成部分
if
(
!
tags
||
tags
.
length
===
0
)
return
rtns
;
let
allXpaths
=
tags
.
map
(
path
=>
tag
.
xpath
.
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
);
for
(
let
i
=
0
;
i
<
allXpaths
[
0
].
length
;
i
++
)
{
if
(
allXpaths
.
every
(
path
=>
path
[
i
]
===
allXpaths
[
0
][
i
]))
{
// 检查所有路径是否有这个部分
rtns
.
push
(
allXpaths
[
0
][
i
]);
}
else
{
break
;}
//如果发现不同的,直接就可以退出了
}
return
rtns
;
...
...
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