2014-03-31 8 views
0

애플 리케이션을 전환 할 때 UI 자동화를 사용하여 UIPasteboard에서 글쓰기 및 읽기를 테스트하려고합니다. 그러나 두 번째 앱으로 전환하면 스크립트가 중단됩니다. 나는 교수형에 처하는 것을 막기 위해 잠을 자려고 노력하고있다. waitForInvalidpushTimeout/popTimeout을 사용해 보았습니다. 두 가지 방법 모두 작동하지 않는 것으로 보이고 두 번째 앱에서 logElementTree으로 이동하기 전에 테스트가 중단됩니다.iOS UIAutomation : 애플 리케이션 전환

내 UI 자동화 스크립트는 waitForInvalid입니다. 스크립트가 pushTimeout/popTimeout를 사용하고 여기

var target = UIATarget.localTarget(); 

target.frontMostApp().mainWindow().segmentedControls()[0].buttons()["1MB"].tap(); 
target.frontMostApp().mainWindow().buttons()["Pasteboard Sharing"].tap(); 

UIATarget.localTarget().frontMostApp().mainWindow().buttons()["Paste & Go"] 
    .tap(); 
UIATarget.localTarget().frontMostApp().mainWindow().buttons()["Paste & Go"] 
    .waitForInvalid(); 

target.frontMostApp().mainWindow().logElementTree(); 

: 그리고 만약 내가 제대로 이해하고

var target = UIATarget.localTarget(); 

target.frontMostApp().mainWindow().segmentedControls()[0].buttons()["1MB"].tap(); 
target.frontMostApp().mainWindow().buttons()["Pasteboard Sharing"].tap(); 

UIATarget.localTarget().frontMostApp().mainWindow().buttons()["Paste & Go"] 
    .tap(); 

UIATarget.localTarget().pushTimeout(10); 
UIATarget.localTarget().frontMostApp().mainWindow().buttons()["Check Pasteboard"] 
    .withValueForKey(1, "isVisible"); 
UIATarget.localTarget().popTimeout(); 

target.frontMostApp().mainWindow().logElementTree(); 

답변

1

, 당신에 동일한 스크립트를 사용하려면 (이 두 번째 응용 프로그램을 실행하는 곳 "판지 공유"버튼입니다) 두 개의 앱을 테스트합니다. 그러나 UIA 만 사용하는 것은 불가능합니다. UIAutomation을 사용하면 대상으로 하나의 앱만있을 수 있습니다. 따라서 대상이되는 앱이 백그라운드에 있기 때문에 다른 앱으로 전환하는 것은 "멈추게"됩니다. 어딘가에 Appium https://github.com/appium/appium을 사용하여 두 앱 사이에서 상호 작용할 수 있다고 읽었지만 직접 사용하지는 않았습니다.

+0

또한 Appium은 백그라운드에서 UIAutomation을 사용합니다. 따라서 한계는 동일하게 유지됩니다. Android (appium 포함 또는 제외)에 적합하지만 –