我正在尝试创建一个JInvocation,如:-
driver.manage().timeouts().implicitlyWait(10L, (TimeUnit.SECONDS));
这是我用来生成相同代码的代码块:-
public static JInvocation implicitWait(JVar driverJVar, Long implicitWaitTime, TimeUnit timeUnit) {
JClass timeUnitType = (JClass) BasicUtility.getReferenceForClass(TimeUnit.class);
JExpression jExpression = JExpr.direct(timeUnitType.name().concat(".").concat(timeUnit.name()));
return driverJVar.invoke("manage").invoke("timeouts").invoke("implicitlyWait").arg(JExpr.lit(implicitWaitTime)).arg(jExpression);
}
这很完美,唯一的问题是TimeUnit不会为此创建一个import语句。我必须手动输入。还有其他方法可以使用枚举值并将其作为参数传递吗?
答案 0 :(得分:0)
找到了解决方案。我们可以使用JClass的all_options = {
'America': {
'New York': ['Statue of Liberty', 'Empire State Building'],
'San Francisco': ['Golden Gate Bridge', 'Mission District'],
},
'Canada': {
u'Montréal': ['Biodome', 'Parc Laurier'],
'Toronto': ['CN Tower', 'Royal Ontario Museum'],
}
}
方法来做到这一点。这将自动导入import语句。
staticRef