Xamarin.UITest Tips - Xamarin.Forms WebView 利用時のメモ
はじめに
とある案件で、Xamarin.iOS の WKWebView を利用したアプリを Xamarin.UITest で自動化することがあって、
Xamarin.UITest のドキュメントを確認すると、app.Query(c=>c.Class("WKWebView"))
で WKWebView を取得することができると記載されていました。
念のため、Xamarin.Forms の場合はどうなるか、確認してみました。
まとめ
Xamarin.Forms の場合でも iOS では、app.Query(x =>x.Class("WKWebView"))
のように Class
メソッドの引数に WKWebView
を指定して WebView を取得する必要がある。
試したこと
Xamarin.Forms で WebView が配置された簡単なサンプルアプリを Xamarin.UITest で WebView が取得できるかを確認しました。
REPL を起動して、app.Query(x => x.WebView())
で試してみましたが、予想通り何も取得できせんでした。
app.Query(c=>c.Class("WKWebView"))
で試してみると、下の図のように取得することができました。
参考:サンプル
以下のサンプルを利用しました。
サンプルの一部を抜粋しておきます。
<?xml version="1.0" encoding="UTF-8"?> <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="WebViewSample.LoadingLabelXaml" Title="Loading Demo"> <StackLayout> <!--Loading label should not render by default.--> <Label x:Name="labelLoading" Text="Loading..." IsVisible="false" /> <WebView HeightRequest="1000" WidthRequest="1000" Source="https://dotnet.microsoft.com/apps/xamarin" Navigated="webviewNavigated" Navigating="webviewNavigating" /> </StackLayout> </ContentPage>