Java Selenium自定义方法,以获取webelement的名称作为参数
在我的项目中使用Java Selenium和Page对象,希望创建一个自定义方法,该方法将获取两个字符串作为参数,组合它们并调用right webelement来执行一些操作
下面是我的页面对象的示例
public class Test extends Base {
public Test() {
PageFactory.initElements(driver, this);
}
@FindBy(xpath = "//div[@id='question1No']")
WebElement question1Yes;
@FindBy(xpath = "//div[@id='question1No']")
WebElement question1No;
public Object GetField(String answer, String question) {
Field field = null;
try {
field = Test.class.getField((question+answer).replace("\"", ""));
return field.get(this);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public void answerQuestion(String answer, String question) {
WebElement element = (WebElement)GetField(answer,question);
element.click();
}
例如,调用该方法:
answerQuestion("Yes", "question1")
调用此方法应执行click on question1Yes元素
# 1 楼答案
你可以使用反射
然后你可以用你的网页元素做任何你想做的事
upd。 如果字段是私有的,则写入
field.setAccessible(true);