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

Commit 00819ae

Browse files
committed
对文本添加更多的值填入方法
1 parent 3e3e7ea commit 00819ae

File tree

1 file changed

+145
-1
lines changed
  • src/main/java/org/suren/autotest/web/framework/core/ui

1 file changed

+145
-1
lines changed

src/main/java/org/suren/autotest/web/framework/core/ui/Text.java

Lines changed: 145 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
1212
import org.springframework.context.annotation.Scope;
1313
import org.springframework.stereotype.Component;
14+
import org.suren.autotest.web.framework.core.action.AdvanceValueEditor;
1415
import org.suren.autotest.web.framework.core.action.ClickAble;
1516
import org.suren.autotest.web.framework.core.action.ValueEditor;
1617
import org.suren.autotest.web.framework.selenium.SeleniumEngine;
@@ -32,6 +33,8 @@ public class Text extends AbstractElement
3233
@Autowired
3334
private ValueEditor valueEditor;
3435
@Autowired
36+
private AdvanceValueEditor advanceValueEditor;
37+
@Autowired
3538
private ClickAble clickAble;
3639
@Autowired
3740
private SeleniumEngine engine;
@@ -65,7 +68,6 @@ public Text fillValue()
6568
String val4Fill = value;
6669
if(StringUtils.isNotBlank(callback))
6770
{
68-
System.out.println(Thread.currentThread().getName());;
6971
String methodName = "execute";
7072
String callbackClsName = callback;
7173

@@ -131,6 +133,148 @@ public Text fillValue()
131133

132134
return this;
133135
}
136+
137+
public Text appendValue()
138+
{
139+
String val4Fill = value;
140+
if(StringUtils.isNotBlank(callback))
141+
{
142+
String methodName = "execute";
143+
String callbackClsName = callback;
144+
145+
int methodIndex = callback.indexOf("!");
146+
if(methodIndex != -1 && !callback.endsWith("!"))
147+
{
148+
methodName = callback.substring(methodIndex + 1);
149+
callbackClsName = callback.substring(0, methodIndex);
150+
}
151+
152+
try
153+
{
154+
if(!callbackClsName.contains("."))
155+
{
156+
//这种情况下,就调用框架内部的类
157+
Map<Object, Object> engineConfig = engine.getEngineConfig();
158+
String pkg = (String) engineConfig.get("invoker.package");
159+
if(StringUtils.isBlank(pkg))
160+
{
161+
pkg = "org.suren.autotest.web.framework.invoker";
162+
}
163+
164+
callbackClsName = (pkg + "." + callbackClsName);
165+
}
166+
167+
Class<?> callbackCls = Class.forName(callbackClsName);
168+
Method callbackMethod = callbackCls.getMethod(methodName,
169+
SeleniumEngine.class, String.class);
170+
171+
Object result = callbackMethod.invoke(null, engine, value);
172+
if(result != null)
173+
{
174+
val4Fill = result.toString();
175+
}
176+
}
177+
catch (ClassNotFoundException e)
178+
{
179+
e.printStackTrace();
180+
}
181+
catch (NoSuchMethodException e)
182+
{
183+
e.printStackTrace();
184+
}
185+
catch (SecurityException e)
186+
{
187+
e.printStackTrace();
188+
}
189+
catch (IllegalAccessException e)
190+
{
191+
e.printStackTrace();
192+
}
193+
catch (IllegalArgumentException e)
194+
{
195+
e.printStackTrace();
196+
}
197+
catch (InvocationTargetException e)
198+
{
199+
e.printStackTrace();
200+
}
201+
}
202+
203+
advanceValueEditor.appendValue(this, val4Fill);
204+
205+
return this;
206+
}
207+
208+
public Text fillNotBlankValue()
209+
{
210+
String val4Fill = value;
211+
if(StringUtils.isNotBlank(callback))
212+
{
213+
String methodName = "execute";
214+
String callbackClsName = callback;
215+
216+
int methodIndex = callback.indexOf("!");
217+
if(methodIndex != -1 && !callback.endsWith("!"))
218+
{
219+
methodName = callback.substring(methodIndex + 1);
220+
callbackClsName = callback.substring(0, methodIndex);
221+
}
222+
223+
try
224+
{
225+
if(!callbackClsName.contains("."))
226+
{
227+
//这种情况下,就调用框架内部的类
228+
Map<Object, Object> engineConfig = engine.getEngineConfig();
229+
String pkg = (String) engineConfig.get("invoker.package");
230+
if(StringUtils.isBlank(pkg))
231+
{
232+
pkg = "org.suren.autotest.web.framework.invoker";
233+
}
234+
235+
callbackClsName = (pkg + "." + callbackClsName);
236+
}
237+
238+
Class<?> callbackCls = Class.forName(callbackClsName);
239+
Method callbackMethod = callbackCls.getMethod(methodName,
240+
SeleniumEngine.class, String.class);
241+
242+
Object result = callbackMethod.invoke(null, engine, value);
243+
if(result != null)
244+
{
245+
val4Fill = result.toString();
246+
}
247+
}
248+
catch (ClassNotFoundException e)
249+
{
250+
e.printStackTrace();
251+
}
252+
catch (NoSuchMethodException e)
253+
{
254+
e.printStackTrace();
255+
}
256+
catch (SecurityException e)
257+
{
258+
e.printStackTrace();
259+
}
260+
catch (IllegalAccessException e)
261+
{
262+
e.printStackTrace();
263+
}
264+
catch (IllegalArgumentException e)
265+
{
266+
e.printStackTrace();
267+
}
268+
catch (InvocationTargetException e)
269+
{
270+
e.printStackTrace();
271+
}
272+
}
273+
274+
advanceValueEditor.fillNotBlankValue(this, val4Fill);
275+
276+
return this;
277+
}
134278

135279
/**
136280
* @return 预备的数据

0 commit comments

Comments
 (0)