2016-09-13 10 views
0

私はこのiOSの世界では初めてですが、XCUITestを使用してiOS WebViewアプリケーションを自動化することに非常に興奮しています。私はどのようにWebViewアプリケーションのための私のXCTestからjavascriptを実行し、隠し変数の値をフェッチすることができるかを把握しようとしています。 私のアプリは、WebViewのを持っており、それだページのソースには、以下の使用して、私はWebViewののハンドルを持って <input type="hidden" name="demo" value="test">XCUITestを使ってjavascriptを実行し、ページソースで隠し変数の値を取得する方法は?

次の要素が含まれます。

let webViewQury:XCUIElementQuery = app.descendantsMatchingType(.WebView) 
let webview = webViewQury.elementAtIndex(0) 

をしかし、私はJavaScriptを実行できる方法についてのよく分かりません上記の要素の値、すなわち "デモ"を取得します。 stringByEvaluatingJavaScriptFromStringを使うことができますが、この方法はUIWebViewに適用されます。

答えて

1

悲しいことに、答えはyou can'tです。ユーザーがアプリの内部メソッド、関数、および 変数にアクセスすることなく を行うこと

UIテストは、同じ方法でアプリのUIを行使する:確かに、あなたはUIテスト中アプリのコードにアクセスすることはできません。これにより、ユーザが同じ方法でアプリケーションを見ることができるようになります。ユーザーが遭遇するUIの問題が公開されます( )。

テストコードは、別のプロセスとして実行され、アプリケーションのUI が応答するイベントを合成します。

(出典:Apple doc

あなただけXCUIApplicationXCUIElementを使用して、アプリケーションと対話することができます。彼らはあなたが望むことをすることを許しません。

実際には、アプリケーションでユーザーとして行動する方法としてUIテストを統一する必要があります。あなたは決してユーザーに尋ねることはありませんdo my UIWebView contains this source code?

+0

お返事ありがとう!はい、私は言及した操作をユーザーに依頼することは決してないだろうが、私のアプリはAPIとやりとりして以来、ページソースの隠し変数の値を使ってそれらのAPIに投稿しなければならなかった。 APIコールを作成すると、UIテキストフィールドに値を入力する必要があります。私はエスプレッソを使ってこのアンドロイドを行うことができましたが、残念ながらこれをXCUITestで把握する方法はありません。どのような手順を自動化することをお勧めしますか? – k10

+0

UIWebViewオブジェクトまたはそのコンテンツにアクセスすることができないため、これを行う方法はありません。 –

+0

右!代わりに、デバッグのみを作成して、隠し変数の値をUIに公開し、XCUITestがその上で操作できるようにします。ありがとうございましたJulien。このスレッドを閉じる – k10

関連する問題