提交 d64266a0 authored 作者: 孙洁清's avatar 孙洁清

Merge branch 'master' of git.yfzx.zjtys.com.cn:hct/auto-test

......@@ -128,7 +128,10 @@ public class SeleniumExecutor {
StringBuilder message = new StringBuilder();
while (elementIndex < elements.size()) {
WebElement element = elements.get(elementIndex);
message.append(act(element));
String elementMsg = act(element);
if (nonNull(elementMsg)) {
message.append(elementMsg);
}
}
return message.toString();
}
......@@ -137,32 +140,37 @@ public class SeleniumExecutor {
String message = null;
elementIndex++;
try {
log.info("正在操作第{}个元素 ------ text:[{}] ----- tag:[{}]", elementIndex + 1, element.getText(), element.getTagName());
if (isEnabledAndDisplayed(element)) {
log.info("操作第{}个元素 ------ text:[{}] ----- tag:[{}]", elementIndex + 1, element.getText(), element.getTagName());
if (isEnabledInput(element)) {
inputValue(element, inputs);
} else if (isEnabledClick(element)) {
element.click();
}
sleep();
//一旦页面发生过跳转 通过重新打开回到原来的页面后需要重新获取元素
Boolean pageChanged = checkPage();
if (pageChanged) {
reload();
traversal();
}
//警告窗口处理
Alert alert = getAlert();
if (nonNull(alert)) {
message = "出现警告窗:" + alert.getText();
alert.accept();
}
} else {
log.info("操作第{}个元素 ------ 该元素Enabled 跳过", elementIndex + 1);
}
sleep();
//一旦页面发生过跳转 通过重新打开回到原来的页面后需要重新获取元素
Boolean pageChanged = checkPage();
if (pageChanged) {
reload();
}
//警告窗口处理
Alert alert = getAlert();
if (nonNull(alert)) {
message = "出现警告窗:" + alert.getText();
alert.accept();
}
} catch (ElementNotInteractableException e) {
message = "异常的布局;";
log.error("error:在可操作范围之外的元素");
} catch (TimeoutException e) {
message = "第" + (elementIndex + 1) + "个元素操作超时;";
log.error("error:操作超时");
} catch (TimeoutException ignored) {
} catch (StaleElementReferenceException e) {
reload();
traversal();
} catch (Exception e) {
message = "预料之外的异常:" + e.getMessage() + ";";
log.error("error:" + e);
......@@ -180,7 +188,6 @@ public class SeleniumExecutor {
if (newPage) {
urlQueue.add(driver.getCurrentUrl());
}
reload();
return true;
} else {
return false;
......@@ -220,7 +227,6 @@ public class SeleniumExecutor {
private void reload() {
driver.get(currentUrl);
getAllElements(driver);
traversal();
}
private void sleep() {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论