2017-01-23 1 views
0

win32 app 테스트를위한 간단한 테스트 케이스가 있습니다. Selenium Library를 통해 앱을 닫으려고합니다. 요점은 Xpath를 사용하여 수행하는 것입니다. 그것은 로봇의 파일입니다 :WebDriverException : 메시지 : '/? /?/button [@ accessiblename ='닫기 ']'토큰이 유효하지 않습니다.

*** Settings *** 
Library Process 

Suite Teardown Terminate All Processes kill=True 

*** TestCases *** 
StartGui 
    start_gui 
    Click Element id=btnManualRequest 
    Click Element xpath=/form[@wpfnative='True' and @title='MEV 2.7.60' and @processname='MEV.Gui']/?/?/button[@accessiblename='Close'] 

*** Keywords *** 
start_gui 
    Start process C:\\test\\robot\\Winium.Desktop.Driver\\Winium.Desktop.Driver.exe shell=no alias=first 
    Import Library Selenium2Library 
    ${winium_host}= Set Variable localhost 
    ${winium_port}= Set Variable 9999 
    ${capabilities}= Create Dictionary app=C:\\test\\app\\MEV.Gui.exe 
    Create Webdriver Remote command_executor=http://${winium_host}:${winium_port} desired_capabilities=${capabilities} 
    sleep 8 

나는이 메시지를 받았습니다 :

WebDriverException: Message: '/form[@wpfnative='True' and @title='MEV 2.7.60' and @processname='MEV.Gui']/?/?/button[@accessiblename='Close']' has an invalid token. 

어쩌면 나는 장님하지만 실수입니다 내가 이해하지, 왜 내가 XPath를 가진 요소에 도달 할 수 있습니다.

업데이트 : 그냥 calc.exe를 매우 간단한 테스트 케이스를 만들 :

*** Settings *** 
Library Process 
Library Selenium2Library 

Suite Teardown Terminate All Processes kill=True 

*** TestCases *** 
calcStartStop 
Start process C:\\test\\robot\\Winium.Desktop.Driver\\Winium.Desktop.Driver.exe shell=no alias=first 
    ${winium_host}= Set Variable localhost 
    ${winium_port}= Set Variable 9999 
    ${capabilities}= Create Dictionary app=C:\\Windows\\System32\\calc.exe 
    Create Webdriver Remote command_executor=http://${winium_host}:${winium_port} desired_capabilities=${capabilities} 
    Click Element xpath=//form[@processname='calc' and @class='CalcFrame' and @instance='1']/?/?/button[@accessiblename='Close'] 

같은 대답 :

calcStartStop               | FAIL | 
WebDriverException: Message: '//form[@processname='calc' and @class='CalcFrame 
and @instance='1']/?/?/button[@accessiblename='Close']' has an invalid token. 

나는 문제가 내가 잘못 XPath를 얻을 생각합니다. 누군가 win32 앱을위한 올바른 xpath를 얻는 방법을 알고 있습니까?

+0

왜 'Import Library Selenium2Library'를하고 있으며 파일의 맨 위에 있지 않은 이유는 무엇입니까? – Goralight

+0

@Goralight 결과가 중요합니까? –

+2

'XPath'에서'/? /? /'는 무엇입니까? '/ */* /'을 의미합니까? – Andersson

답변

0

?은 XPath 구문의 일부가 아니며 문자열 내에없는 ?은 구문 오류가 발생할 수 있습니다.

관리자가 ?을 축 단계로 포함하는 XPath 표현식을 반환하면 다른 프로그램을 사용해야합니다. 설명자가 이미 지적한대로 요소 이름에 와일드 카드를 사용하려는 경우 *을 사용하십시오.

또는 경로가 RanoreXPath 인 표현식이 아니겠습니까? ?은 XPath와 RanoreXPath의 차이점 중 하나 일 수 있습니다.

+0

그래,하지만 마녀 도구 내가 win32 애플 리케이션에서 요소의 Xpath 걸릴 사용할 수 있습니까? –