Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
A
auto-test-case
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
黄承天
auto-test-case
Commits
3a6c3ae1
提交
3a6c3ae1
authored
12月 03, 2020
作者:
黄承天
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[feature]
增加mouseDown mouseMove mouseUp三种操作类型的处理 未识别类型的步骤将从总数中剔除
上级
b583d01b
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
85 行增加
和
6 行删除
+85
-6
CommandType.java
...ain/java/com/zjty/autotest/common/action/CommandType.java
+6
-0
SeleniumExecutor.java
...main/java/com/zjty/autotest/service/SeleniumExecutor.java
+79
-6
没有找到文件。
src/main/java/com/zjty/autotest/common/action/CommandType.java
浏览文件 @
3a6c3ae1
...
...
@@ -26,6 +26,12 @@ public interface CommandType {
String
CLICK
=
"click"
;
String
MOUSE_DOWN
=
"mouseDownAt"
;
String
MOUSE_MOVE
=
"mouseMoveAt"
;
String
MOUSE_UP
=
"mouseUpAt"
;
String
DOUBLE_CLICK
=
"doubleClick"
;
String
CLOSE
=
"close"
;
...
...
src/main/java/com/zjty/autotest/service/SeleniumExecutor.java
浏览文件 @
3a6c3ae1
...
...
@@ -69,7 +69,7 @@ public class SeleniumExecutor {
private
Date
endTime
=
null
;
private
Long
costTime
=
0
L
;
private
Long
costTime
=
-
1
L
;
private
Integer
finished
=
0
;
...
...
@@ -98,7 +98,6 @@ public class SeleniumExecutor {
name
=
testCase
.
getName
();
this
.
params
=
params
;
List
<
Command
>
commands
=
testCase
.
getCommands
();
total
=
commands
.
size
();
//根据浏览器 获取driver
this
.
browser
=
browser
;
if
(
nonNull
(
headless
))
{
...
...
@@ -111,6 +110,8 @@ public class SeleniumExecutor {
Step
step
=
actCommand
(
command
);
if
(
nonNull
(
step
))
{
steps
.
add
(
step
);
}
else
{
total
--;
}
finished
=
steps
.
size
();
Report
report
=
getReport
();
...
...
@@ -230,7 +231,7 @@ public class SeleniumExecutor {
success
=
true
;
break
;
case
CLICK:
content
=
format
(
"
点击元素
:[%s]"
,
target
);
content
=
format
(
"
单击
:[%s]"
,
target
);
element
=
locateElement
(
target
);
if
(
isNull
(
element
))
{
element
=
getElement
(
targets
);
...
...
@@ -255,7 +256,7 @@ public class SeleniumExecutor {
}
break
;
case
DOUBLE_CLICK:
content
=
format
(
"双击
元素
:[%s]"
,
target
);
content
=
format
(
"双击:[%s]"
,
target
);
element
=
locateElement
(
target
);
if
(
isNull
(
element
))
{
element
=
getElement
(
targets
);
...
...
@@ -279,6 +280,78 @@ public class SeleniumExecutor {
success
=
false
;
}
break
;
case
MOUSE_DOWN:
content
=
format
(
"长单击:[%s]"
,
target
);
element
=
locateElement
(
target
);
if
(
isNull
(
element
))
{
element
=
getElement
(
targets
);
}
if
(
nonNull
(
element
))
{
boolean
newWindow
=
nonNull
(
command
.
getOpensWindow
())
&&
command
.
getOpensWindow
();
if
(
newWindow
)
{
seleniumHelper
.
setHistoryHandles
(
driver
.
getWindowHandles
());
}
new
Actions
(
driver
).
moveToElement
(
element
).
clickAndHold
().
perform
();
seleniumHelper
.
waitSomeTime
();
costTime
=
System
.
currentTimeMillis
()
-
stepStartTime
;
success
=
true
;
if
(
newWindow
)
{
seleniumHelper
.
getHandleMap
().
put
(
command
.
getWindowHandleName
(),
getWindowHandle
());
}
}
else
{
message
=
"无法定位该元素"
;
costTime
=
System
.
currentTimeMillis
()
-
stepStartTime
;
success
=
false
;
}
break
;
case
MOUSE_MOVE:
content
=
format
(
"鼠标移动至:[%s]"
,
target
);
element
=
locateElement
(
target
);
if
(
isNull
(
element
))
{
element
=
getElement
(
targets
);
}
if
(
nonNull
(
element
))
{
boolean
newWindow
=
nonNull
(
command
.
getOpensWindow
())
&&
command
.
getOpensWindow
();
if
(
newWindow
)
{
seleniumHelper
.
setHistoryHandles
(
driver
.
getWindowHandles
());
}
new
Actions
(
driver
).
moveToElement
(
element
).
perform
();
seleniumHelper
.
waitSomeTime
();
costTime
=
System
.
currentTimeMillis
()
-
stepStartTime
;
success
=
true
;
if
(
newWindow
)
{
seleniumHelper
.
getHandleMap
().
put
(
command
.
getWindowHandleName
(),
getWindowHandle
());
}
}
else
{
message
=
"无法定位该元素"
;
costTime
=
System
.
currentTimeMillis
()
-
stepStartTime
;
success
=
false
;
}
break
;
case
MOUSE_UP:
content
=
format
(
"停止长按:[%s]"
,
target
);
element
=
locateElement
(
target
);
if
(
isNull
(
element
))
{
element
=
getElement
(
targets
);
}
if
(
nonNull
(
element
))
{
boolean
newWindow
=
nonNull
(
command
.
getOpensWindow
())
&&
command
.
getOpensWindow
();
if
(
newWindow
)
{
seleniumHelper
.
setHistoryHandles
(
driver
.
getWindowHandles
());
}
new
Actions
(
driver
).
moveToElement
(
element
).
release
().
perform
();
seleniumHelper
.
waitSomeTime
();
costTime
=
System
.
currentTimeMillis
()
-
stepStartTime
;
success
=
true
;
if
(
newWindow
)
{
seleniumHelper
.
getHandleMap
().
put
(
command
.
getWindowHandleName
(),
getWindowHandle
());
}
}
else
{
message
=
"无法定位该元素"
;
costTime
=
System
.
currentTimeMillis
()
-
stepStartTime
;
success
=
false
;
}
break
;
case
SELECT:
String
label
=
seleniumHelper
.
getValue
(
value
);
content
=
format
(
"下拉框选择:[%s]"
,
label
);
...
...
@@ -462,8 +535,8 @@ public class SeleniumExecutor {
startTime
=
null
;
endTime
=
null
;
costTime
=
-
1L
;
finished
=
-
1
;
total
=
-
1
;
finished
=
0
;
total
=
0
;
steps
.
clear
();
if
(
nonNull
(
params
))
{
params
.
clear
();
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论