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なテストを減らして安定したテストを回したい。。。

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s