Skip to content
This repository was archived by the owner on Nov 27, 2023. It is now read-only.

Commit 3e3e7ea

Browse files
committed
增加文本填入高级接口的实现
1 parent dde4ec4 commit 3e3e7ea

File tree

1 file changed

+42
-4
lines changed

1 file changed

+42
-4
lines changed

src/main/java/org/suren/autotest/web/framework/selenium/action/SeleniumValueEditor.java

Lines changed: 42 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,20 @@
1010
import org.slf4j.LoggerFactory;
1111
import org.springframework.beans.factory.annotation.Autowired;
1212
import org.springframework.stereotype.Component;
13+
import org.suren.autotest.web.framework.core.action.AdvanceValueEditor;
1314
import org.suren.autotest.web.framework.core.action.ValueEditor;
1415
import org.suren.autotest.web.framework.core.ui.Element;
1516
import org.suren.autotest.web.framework.selenium.SeleniumEngine;
1617
import org.suren.autotest.web.framework.selenium.strategy.SearchStrategyUtils;
18+
import org.suren.autotest.web.framework.util.StringUtils;
1719

1820
/**
1921
* 给文本框中填入值
2022
* @author suren
2123
* @since jdk1.6 2016年6月29日
2224
*/
2325
@Component
24-
public class SeleniumValueEditor implements ValueEditor
26+
public class SeleniumValueEditor implements ValueEditor, AdvanceValueEditor
2527
{
2628
private static final Logger logger = LoggerFactory.getLogger(SeleniumValueEditor.class);
2729

@@ -41,6 +43,33 @@ public Object getValue(Element ele)
4143
*/
4244
@Override
4345
public void setValue(Element ele, Object value)
46+
{
47+
fillValue(ele, value, false);
48+
}
49+
50+
@Override
51+
public void appendValue(Element ele, Object value)
52+
{
53+
fillValue(ele, value, true);
54+
}
55+
56+
@Override
57+
public void fillNotBlankValue(Element ele, Object value)
58+
{
59+
if(value == null || StringUtils.isBlank(value.toString()))
60+
{
61+
throw new RuntimeException("Can not allow null or empty value!");
62+
}
63+
64+
fillValue(ele, value, true);
65+
}
66+
67+
/**
68+
* @param ele
69+
* @param value
70+
* @param append 是否追加
71+
*/
72+
private void fillValue(Element ele, Object value, boolean append)
4473
{
4574
if(value == null)
4675
{
@@ -62,15 +91,21 @@ public void setValue(Element ele, Object value)
6291
String valueStr = value.toString();
6392

6493
webEle.click();
65-
webEle.clear();
94+
if(!append)
95+
{
96+
webEle.clear();
97+
}
6698
webEle.sendKeys(value.toString());
6799

68100
if("input".equals(webEle.getTagName()))
69101
{
70102
if(!valueStr.equals(webEle.getAttribute("value")))
71103
{
72104
webEle.click();
73-
webEle.clear();
105+
if(!append)
106+
{
107+
webEle.clear();
108+
}
74109
webEle.sendKeys(value.toString());
75110
}
76111
}
@@ -82,7 +117,10 @@ public void setValue(Element ele, Object value)
82117
((JavascriptExecutor) engine.getDriver()).executeScript("arguments[0].scrollIntoView();", webEle);
83118

84119
webEle.click();
85-
webEle.clear();
120+
if(!append)
121+
{
122+
webEle.clear();
123+
}
86124
webEle.sendKeys(value.toString());
87125
}
88126
else

0 commit comments

Comments
 (0)