質問: xcuitrunnerでxcodeuiテストを起動できません quamotionのxcuitrunnerを使用して、windowspcでxcodeuiテスト(この場合はfacebook/appium webdriveragent)を起動しようとしています。 http://docs.quamotion.mobi/quamotion4appium/xcuitrunner/ からダウンロードしたバージョン0.114.18を使用しています。ただし、コマンドラインでxcuitrunnerを起動すると、次の出力が表示されます。quamotion xcode ui test runner version 0.114.18+34d082af40 machine id: xxxxxxxx specify --help for a list of available options and commands. これは予想通りですか?次は何ですか? webdriveragentに接続して、デバイス上のアプリのuiコントロールのプロパティを取得したいですか?
回答: 次の構文を使用してxcuitrunnerを起動できます。xcuitrunner.exe run -d [path to your developer profile] -p [password for your developer profile] -k [path to the directory containing the developer disk images] 角括弧内の値をpcの実際の値に置き換える必要があります。xcuitrunnerが起動すると、次のような出力が表示されます。quamotion xcode ui test runner version 0.114.18+34d082af40 machine id: xxxxxxxx using a license for which expires on 1/1/2020 1:00:00 am the xcode ui test will be resigned: - developer certificate: [your certificate] - provisioning profile: [your provisioning profile] starting the xcode ui test 2019-05-07 11:42:51.046729+0200 webdriveragentrunner-runner[513:143347] running tests... objc[513]: class gcdasyncsocketprebuffer is implemented in both /private/var/containers/bundle/application/fd8eab15-bd59-40fe-941c-756506186612/webdriveragentrunner-runner.app/plugins/webdriveragentrunner.xctest/frameworks/webdriveragentlib.framework/frameworks/cocoaasyncsocket.framework/cocoaasyncsocket (0x10559c578) and /private/var/containers/bundle/application/fd8eab15-bd59-40fe-941c-756506186612/webdriveragentrunner-runner.app/plugins/webdriveragentrunner.xctest/frameworks/webdriveragentlib.framework/frameworks/routinghttpserver.framework/routinghttpserver (0x105509358). one of the two will be used. which one is undefined. objc[513]: class gcdasyncreadpacket is implemented in both /private/var/containers/bundle/application/fd8eab15-bd59-40fe-941c-756506186612/webdriveragentrunner-runner.app/plugins/webdriveragentrunner.xctest/frameworks/webdriveragentlib.framework/frameworks/cocoaasyncsocket.framework/cocoaasyncsocket (0x10559c5c8) and /private/var/containers/bundle/application/fd8eab15-bd59-40fe-941c-756506186612/webdriveragentrunner-runner.app/plugins/webdriveragentrunner.xctest/frameworks/webdriveragentlib.framework/frameworks/routinghttpserver.framework/routinghttpserver (0x1055093a8). one of the two will be used. which one is undefined. objc[513]: class gcdasyncwritepacket is implemented in both /private/var/containers/bundle/application/fd8eab15-bd59-40fe-941c-756506186612/webdriveragentrunner-runner.app/plugins/webdriveragentrunner.xctest/frameworks/webdriveragentlib.framework/frameworks/cocoaasyncsocket.framework/cocoaasyncsocket (0x10559c618) and /private/var/containers/bundle/application/fd8eab15-bd59-40fe-941c-756506186612/webdriveragentrunner-runner.app/plugins/webdriveragentrunner.xctest/frameworks/webdriveragentlib.framework/frameworks/routinghttpserver.framework/routinghttpserver (0x1055093f8). one of the two will be used. which one is undefined. objc[513]: class gcdasyncspecialpacket is implemented in both /private/var/containers/bundle/application/fd8eab15-bd59-40fe-941c-756506186612/webdriveragentrunner-runner.app/plugins/webdriveragentrunner.xctest/frameworks/webdriveragentlib.framework/frameworks/cocoaasyncsocket.framework/cocoaasyncsocket (0x10559c668) and /private/var/containers/bundle/application/fd8eab15-bd59-40fe-941c-756506186612/webdriveragentrunner-runner.app/plugins/webdriveragentrunner.xctest/frameworks/webdriveragentlib.framework/frameworks/routinghttpserver.framework/routinghttpserver (0x105509448). one of the two will be used. which one is undefined. objc[513]: class gcdasyncsocket is implemented in both /private/var/containers/bundle/application/fd8eab15-bd59-40fe-941c-756506186612/webdriveragentrunner-runner.app/plugins/webdriveragentrunner.xctest/frameworks/webdriveragentlib.framework/frameworks/cocoaasyncsocket.framework/cocoaasyncsocket (0x10559c6b8) and /private/var/containers/bundle/application/fd8eab15-bd59-40fe-941c-756506186612/webdriveragentrunner-runner.app/plugins/webdriveragentrunner.xctest/frameworks/webdriveragentlib.framework/frameworks/routinghttpserver.framework/routinghttpserver (0x105509498). one of the two will be used. which one is undefined. test suite 'all tests' started at 2019-05-07 11:42:53.213 xctestoutputbarrier test suite 'webdriveragentrunner.xctest' started at 2019-05-07 11:42:53.233 xctestoutputbarrier test suite 'uitestinguitests' started at 2019-05-07 11:42:53.249 xctestoutputbarrier test case '-[uitestinguitests testrunner]' started. xctestoutputbarrier t = 0.01s start test at 2019-05-07 11:42:53.275 t = 0.04s set up 2019-05-07 11:42:53.368596+0200 webdriveragentrunner-runner[513:143347] built at mar 8 2019 13:46:49 2019-05-07 11:42:53.578806+0200 webdriveragentrunner-runner[513:143347] serverurlhere->http://10.9.8.50:8100<-serverurlhere 2019-05-07 11:42:53.585966+0200 webdriveragentrunner-runner[513:143397] using singleton test manager - done. took 17s the webdriveragent session is ready at http://localhost:50140/session/a5ef3eec-3b2f-4959-82b1-390077c1356c hit crtl-c to stop the xcode ui test 出力のurlは、サーバーが実行されているエンドポイントです。このurlは、xcuitrunnerを起動するたびに異なります。このサーバーはselenium/webdriver/appiumサーバーです。このサーバーには、http経由で直接接続できます。たとえば、次の場所に移動できます http:// localhost:50140/session/a5ef3eec-3b2f-4959-82b1-390077c1356c/source (最初の部分を実際の値に置き換えてください)デバイスに現在表示されている画面のdomを取得します。コマンドラインからこのサーバーを操作する方法の例もあります: https://github.com/facebook/webdriveragent/wiki/queries 選択したプログラミング言語でappiumまたはwebdriverクライアントライブラリを使用して、このurlでappiumサーバーに接続するように要求することもできます。それをどのように行うことができるかは、使用するプログラミング言語によって異なります。