2017-12-05 4 views
0

Appiumでは、IDロケータ(resource-id)を使用して要素を識別することができません。Appiumはresource-idを使用して要素を識別できません

添付の画像を参照してください。 enter image description here

+0

あなたは、ハイブリッドアプリであれネイティブアプリであれ、アプリの種類については教えていませんでしたか? – workspace

+0

ネイティブアプリ..... – Swyam

+0

一部の開発者は動的リソースIDをいくつかの要素に設定しますが、リソースIDが変更されているかどうか確認してください。あなたがコードで試してみるたびにidが同じであれば、driver.find_element_by_id( "your_Element_ID")をidで検索する必要があります。appiumはresource-idをidとみなします。 – shiv

答えて

0

ご使用のAppiumのバージョンは? Appium InspectorでUI Automator Viewerとの相違点を確認してください。この作品のどれ場合

とにかく...この

#Can't see at your screenshot the whole resource-id so I put what I see. 
driver.find_element_by_xpath("//android.view.View[@resource-id='rptRole__ctl0_rptCommunicationlt...']") 

#You could also try these two options: 
driver.find_element_by_xpath("//android.view.View[@content-desc='1_gr_selected_stores_flex_update.xls']") 

driver.find_element_by_xpath("//android.view.View[@text='1_gr_selected_stores_flex_update.xls']") 

を試してみてください、あなたはIDでいくつかのような$を持っている場合Appiumはサポートしていませんより多くの情報に

+0

これは機能しません。これは動的なので、私はcontent-descフィールドを使用することはできません。私が使用できる唯一のものはリソースIDです。 Appiumのバージョンは1.4.16.1です。私は自動化には新しく、appiumインスペクタはまだ使用していません。インスペクタを起動している間に何らかのエラーが発生しています。 – Swyam

+0

Appiumのバージョンを更新できますか? – barbudito

+0

Appiumは起動時に更新をチェックし、利用可能な更新プログラムはありませんと言います。私が気づいたことの1つは、resouce-idがこの場合はパッケージ名で始まらないということです。これらのリンクは.pdf/.xlsファイルです。何か手掛かりがある場合。 – Swyam

0

を提供する必要があります。あなたは完全なIDを投稿できますか?要素を検索し、あなたの要素を見つけるためにインデックスを使用するために使用するクラス名を動作しない場合

driver.findElementById("alertTitle"); 

: 次のようにfindElementById方法でそれを試してみてください。

List<WebElement> allElements=driver.findElementsByClassName("android.view.View"); 

上記の一覧のインデックスを使用して要素を取得してください。

WebElement yourElement= allElements.get(Required_Index); 
0

以下のコードが動作します。

driver.findElementsByXPath( "android.view.View(@リソースID、 'rptRole')]")。

関連する問題