2016-07-06 10 views
3

私は、Javaとappiumを使用してAndroid/iOS用のモバイルApp自動化テストケースを作成しています。Appiumバージョンでの名前ロケータ戦略の置き換え> = 1.5.0

1.4.16から1.5.3にappiumのバージョンをアップグレードしました。今私は名前ロケータを使用することができません。

名ロケータ: -

By.name("name here") 

はAppium v1.5

に長い非推奨名ロケータ戦略を削除するには、私はfindElementByAccessibilityIdロケータを試してみました。しかし、これは私を助けません。

driver.findElementByAccessibilityId("name"); 

FYI私は特定のIDまたはクラスを使用していません。名前ロケータの置き換えは何ですか?

+0

:https://www.youtube.com/watch?v=bT3tqaLNn-Y – Manidroid

答えて

2

。同じ名前のアイテムが2つ以上ある場合は、誤った要素を返す傾向があります。可能であれば、正確なロケータを使用してください。例:「名前」ロケータはこのリンクがお手伝いします 「長期非推奨名ロケータ戦略を削除し、」非推奨しまったappium 1.5ではBy.xpath("//UIAButton[@name='foo']")

1

accessibilityIDが表示されない場合は、xpathを次のようなもので試してみましたか?それはツリー全体をスキャンしますと非常に遅くなることができたXPathのでワイルドカードを使用して

By.xpath("//*[@name='enter name here']") 
+0

私はxpathを試しました。その作品。私は名前として "テキスト"を参照しています。どの属性がaccessibilityIDによってアクセスされますか? – karan

+0

私はそれがiOSとAndroidで異なると信じています。 iOS:最初に一致するアクセシビリティIDを探します。見つからない場合は、**ラベル**の属性が検索されます。そこから、私はそれが良いole ** name **属性に見えることがわかりました(しかし、名前ロケータの代わりにドロップインを使用して多くのことが成功していないことがわかっています)。 Android:** android:id **属性になります –

関連する問題