2017-04-18 103 views
1

機器人框架中是否有一個關鍵字來確保元素具有某個類?像機器人框架,如何檢查類

Element should has class element className

另外的東西,我可以檢查是否元素有一定的價值一定的屬性。但前者會更合適,因爲元素可能包含多個類。

回答

4

你可以通過XPath選擇創建一個新的關鍵詞:

Element should have class 
    [Arguments] ${element} ${className} 
    Wait until page contains element ${element}[contains(@class, '${className}')] 

或通過CSS選擇器:

Element should have class 
    [Arguments] ${element} ${className} 
    Wait until page contains element ${element}.${className} 

Wait until page contains element可以通過自己的喜好任意關鍵字進行更換,以檢查是否該元素存在,是可見的,例如Element should be visible

+0

'| |失敗| 即使有一個id爲loginButton和class button-blue的元素,元素'loginButton [包含(@class,'button-blue')]'在5秒鐘內沒有出現。我還假定第一個例子中的className需要大括號來評估變量。 –

+1

@TuomasToivonen:我忘了花括號,對此表示遺憾。它應該現在工作。 'loginButton'不是有效的XPath或CSS選擇器,可以使用'#loginButton'或'// * [@ id ='loginButton']'。 – Renzeee

3

下面是一個替代的解決方案(雖然接受答案的CSS一個相當不錯),對於任何一種選擇策略的工作:

Element should have class 
    [Arguments] ${locator} ${target value} 

    ${class}=  Get Element Attribute ${locator}@class 
    Should Contain ${class}  ${target value} 

它可以用於任何其他屬性被修改 - 只是替代@classGet Element Attribute與它(甚至,使其成爲可選參數)。