0
有没有什么办法让我们可以参数化,我们通过使用页面工厂创建一个页面对象的字符串传递参数
例如:
String v = "password";
@FindBy(name=v)
private WebElementFacade password_Field;
我试图推字符串v到@FindBy但我得到错误。
我得到 的注释属性的值FindBy.name必须是一个常量表达式
有没有什么办法让我们可以参数化,我们通过使用页面工厂创建一个页面对象的字符串传递参数
例如:
String v = "password";
@FindBy(name=v)
private WebElementFacade password_Field;
我试图推字符串v到@FindBy但我得到错误。
我得到 的注释属性的值FindBy.name必须是一个常量表达式
是。有可能的。请看以下解决方案:
在你Page
,而不是使用@FindBy
,得到Page
的使用WebElementFacade
find
方法,然后用它来操作。
例如:如果你需要click
一个元素上,请参阅下面的代码:
public void click(String elementId) {
WebElementFacade element = find(ById.id(elementId));
element.click();
}
这完全适用于我。元素ID从.story
例子一路来。
在你的问题中添加异常堆栈跟踪。如果您使用final关键字声明变量v,则应该使用 – Grasshopper
。 – Grasshopper
我同意它,如果我们使用final关键字。但我想v的值应该是可以改变的。有没有办法呢。 –