我试图将一些代码包装到辅助函数中,以便能够减少代码量。以下是Selenium“明确等待”example:
WebElement myDynamicElement = (new WebDriverWait(driver, 10))
.until(ExpectedConditions.presenceOfElementLocated(By.id("myDynamicElement")));
其中presenceOfElementLocated
和id
分别是ExpectedConditions
和By
类的静态方法。我想做的是创建一个看起来像这样的包装函数:
public void waitForElement(Type condition1, Type by1, String identifier){
WebElement myDynamicElement = (new WebDriverWait(driver, 10))
.until(ExpectedConditions.condition1(By.by1("myDynamicElement")));
}
然而,显然我不能像上面那样直接坚持“条件”和“依据”。我知道在Python中我会使用getattr
来返回Class.name
的命名属性的值。
我怎么能用Java做到这一点?
EDIT1 : 我想以下列方式调用此方法:
waitForElement(Type? condition, Type? by, String identifier)
其中:
条件 - Selenium预期条件之一 by 是 - 按标准选择的Selenium之一 标识符(或定位符) - 要等待的网络元素。
PS Type?
表示我不确定应该在这里使用什么。