2016-09-16 11 views
0

によって私はAppiumに私のSeeTestスイートを変換しようとしていますが、私は一つの大きな問題を抱えている:Appium SELECT要素ID

私は彼らの@id属性によって要素を選択することはできません。 IDで選択しようとすると、「要素が見つかりません」と表示されます。 uiautomateviewerでapkを表示すると、要素@idは表示されません。

SeeTestでは、@idで選択するためにapkを「計測済み」にする必要があります。 Appiumの「計装」に相当するものはありますか?

+0

xpathを使う場合は '@ resource-id'を使い、' id'ロケーター戦略を使うなら 'id'(' @ id'ではなく)を使います。しかし、xpathの場合、パッケージ名と ':id /'部分を持つ完全なIDが必要です。 – njzk2

+0

@ njzk2いいえ '@ resource-id'sはuiautomatorviewerでも見ることができます。関連性がある場合はAPIバージョン17(Android 4.2.2)を使用しています –

+0

resource-idは単にxmlレイアウトのビューのIDです – njzk2

答えて

0

これは、AppiumがAndroid APIレベル18以上のIDによる選択のみをサポートしているためです。私は17歳だったので、私はSelendroid Appiumバックエンドに切り替えました。

0

目安としては、Appiumのインスペクタに表示されない場合は使用しないでください。あなたは何ができることの線に沿って何かである:

識別子は

  • 名やコンテンツ-DESC

  • ラベル

  • テキスト

  • することができ

    driver.findElement(By.xpath("//<UIElementType[contains(@<identifier>, '<identifier value>')]>");

などです。

これが変更に役立つことを望みます。 seetestで

+0

さて、私は大規模な自動化フレームワークが既にid(SeeTestをバックエンドとして)を使用しています。私はちょうどIDの –

+0

の名前に関して、SeeTestと同じようにAppiumを動作させたいのですが、アンドロイドでは動作しません。どちらもラベルをしません。あなたのベストベットは、resource-id、content-desc、およびtextです。 – njzk2

+0

現在、私のappiumコードにアクセスすることはできませんが、上記と同じ方法で、 'contains(@ resource-id、 'com.package.path.id')'を使用しても見つかります。 それ以外の場合は同様の方法で見つける方法があるかどうかは分かりません。あなたのSeeTestがどのように働くかの例を私に見せてもらえますか?私はそれに精通していません。 – JaysonP

0
public void athenaclick(String element) { 
    WebElement webElement = driver.findElement(By.id(element)); 
    webElement.click(); 
    System.out.println("Click element: "+element); 
} 

ます楽器はあなたがときでappium例えば使用できない可能性があります余分なプロパティを取得:seetestなどのテキストの色は、有料ツールとappiumはオープンソースです。