2016-08-16 146 views
0

有沒有什麼辦法讓我們可以參數化,我們通過使用頁面工廠創建一個頁面對象的字符串傳遞參數

例如:

String v = "password"; 
@FindBy(name=v) 
private WebElementFacade password_Field; 

我試圖推字符串v到@FindBy但我得到錯誤。

我得到 的註釋屬性的值FindBy.name必須是一個常量表達式

+1

在你的問題中添加異常堆棧跟蹤。如果您使用final關鍵字聲明變量v,則應該使用 – Grasshopper

+0

。 – Grasshopper

+0

我同意它,如果我們使用final關鍵字。但我想v的值應該是可以改變的。有沒有辦法呢。 –

回答

0

是。有可能的。請看以下解決方案:

在你Page,而不是使用@FindBy,得到Page的使用WebElementFacadefind方法,然後用它來操作。

例如:如果你需要click一個元素上,請參閱下面的代碼:

public void click(String elementId) { 
    WebElementFacade element = find(ById.id(elementId)); 
    element.click(); 
} 

這完全適用於我。元素ID從.story例子一路來。