過去いったんまとめた、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なテストを減らして安定したテストを回したい。。。