2017-02-09 2 views
1

남자. Robot Framework의 새로운 기능이며 간단한 질문이지만 올바른 해결책을 찾을 수 없습니다."Test Cases"의 라이브러리에서 Robot Framework의 선택기 값을 얻는 방법

나는 시험이 있습니다

*** Settings *** 
Documentation Login Scenarios 
Library ExtendedSelenium2Library 
Library Resources/LoginPage.py 
Resource Resources/Common.robot 
Library Resources/TopMenuPage.py 
Suite Setup Begin Web Test 
Suite Teardown End Web Test 

*** Variables *** 
${USERNAME} user 
${PASSWORD} password 

*** Test Cases *** 
Login With Valid Credentials 
    [Documentation] Login With Valid Credentials 
    [Tags] Functional 
    LoginPage.input_username ${USERNAME} 
    LoginPage.input_password ${PASSWORD} 
    LoginPage.click_sign_in_button 
    ${test} TopMenuPage.get_selectors 
    page should contain link ${test['logoutButton']} 
    [Teardown] click link css=[ng-click="mainCtrl.logout()"] 

을 그리고 나는 내 라이브러리 (TopMenuPage.py) 코드가 있습니다

selectors = { 
    "logoutButton": "css=[ng-click=\"mainCtrl.logout()\"]", 
    "welcome": "binding=mainCtrl.user.name" 
} 

class TopMenuPage(object): 
    def get_selectors(self): 
     return selectors 

방법, 올바른 방법으로, 내가 시험에 내 선택기를 얻을 수 있습니까? 예 :

page should contain link TopMenuPage.get_selectors['logoutButton'] 

응답 해 주셔서 감사합니다.

+0

지금은 $ {test} 변수를 추가로 사용하고 있습니다. 그러나 나는 그것이 좋은 해결책이 아니라고 생각합니다. –

답변

0

page should contain TopMenuPage.get_selectors['logoutButton']page should contain은 함수 호출이 아닌 인수로 문자열을 필요로하기 때문에 수행 할 수 없습니다. TopMenuPage.get_selectors으로 전화하여 결과를 변수에 저장 한 다음 변수를 사용해야합니다.

+0

답변 해 주셔서 감사합니다. 마지막 질문 : 모든 Suite에서 사용할 수있는 변수를 만들 수 있습니까? 변수 ***로 $ {test} 변수를 이동하려고 시도했지만 오류가 발생했습니다. "해결 변수 '$ {test ['logoutButton ']}'이 실패했습니다. TypeError : 문자열 인덱스가 정수 여야합니다." –

+0

@ AlexanderMelnychuk "예, 로봇은 테스트, 스위트 및 전역 변수를 지원합니다. [user guide] (http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#using-set-test-suite-global-variable)에 문서화되어 있습니다. -keywords). –

관련 문제