UiSelectorを使うようにしたほうが良さそうだ

過去いったんまとめた、Appiumを使ってiOS/Androidの要素を取得する方法の数々に追記した。

Appiumの1.3.3まではできていて、1.3.5betaからできなくなったことに以下による要素の特定がある。

find_element :xpath, "//android.widget.TextView[@text="#{element_name}"]"
find_element :xpath, "//android.widget.Button[@text="#{element_name}"]"

これは、以下のようにUiSelectorを使えば問題はないみたいだ。

element_name = %Q("#{element_name}")
find_element :uiautomator, "new UiSelector().className("android.widget.TextView").text(#{element_name});"
find_element :uiautomator, "new UiSelector().className("android.widget.Button").text(#{element_name});"

UiSelectorはこちらから確認することができる。Uixxxxxシリーズは、uiautomatorの要素として提供されているものなので、UiSelectorをちゃんと使っていくという方がAndroidでは正しそう。

心無しか、AppiumもUiSelector使って安定したようにみえる。

Appiumで行うレベルのテストはテスト環境で影響される要素が多いので、地道にFlakyなテストを減らして安定したテストを回したい。。。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中