2016-03-22 7 views
-1

にXPathを見つけることができません。私はDVRボックス(リビングルーム、DVR 1この例では)からテキストを取得する必要があります。私はさまざまな組み合わせを試みていたが、まだ運がない。あなたは助ける私は要素のXPathを見つけてくださいすることができ<code>Appium</code>、<code>UIAutomatoViewer</code>とAndroid 5.1</p> <p>を使用してAndroidの

resource-idの場合、RelativeLayout[0]RelativeLayout[1]は同じですので、私は使用できません。また、テキストも動的であるため(DVRボックスは変更されるため)、テキストを使用してページを検索することはできません。私は、次は私がやったことある唯一の解決策は、XPath

だと思う:私のソリューションは、これまでの仕事の

  1. AndroidElement d = (AndroidElement) 
    driver.findElementByXPath("//android.widget.RelativeLayout[0]/android.widget.RelativeLayout[0]/android.widget.TextView[0]");      
    
  2. AndroidElement d = (AndroidElement) 
    driver.findElementByXPath("//android.widget.RelativeLayout[@index='0']"); 
    System.out.println(d.getText());    
    
  3. AndroidElement d = (AndroidElement) 
    driver.findElementByXPath("//RelativeLayout[0]/TextView[0]"); 
    

でもないが

enter image description here

+0

プロパティセクションの要素の「appium inspector」に表示されているようにXPathを試してください。 – nullpointer

+0

ありがとうございます。私はUIAtomatorviewerを使用していましたが、AppiumのインスペクタでFull Xpathを見ることができません。 UIAtomatorviewerには今までこのオプションがありません –

答えて

0

私は、彼らが同じ

あなたはまだresource-idsList<WebElement>を作成し、インデックスを使用して要素にアクセスする使用することができますので、RelativeLayout [0]と RelativeLayout1のための「リソースID」を使用することはできません。あなたのケースでは、このような何か:

List<WebElement> dvrList = driver.findElementsById("<id of the list element"); //creates a list of elements with same id 
String text = dvrList.get(1).getText(); //this gives you text of 2nd element on list (base index 0) 

私はXPathが要素にアクセスするあなたの方法は大丈夫

WebElement dvrItem = driver.findElementByXPath("//android.widget.ListView[0]/android.widget.RelativeLayout[0]/android.widget.RelativeLayout[0]/android.widget.TextView[0]"); 
String text = dvrItem.getText(); 

編集思わ正しいでない限り、唯一の解決策は

のXPath

だと思います: -

Correct XPath = //android.widget.RelativeLayout[1]/android.widget.R‌​elativeLayout[1]/android.widget.TextView[1] 
+0

正しいXpathが見つかりました:WebElement drv = driver.findElement(By.xpath( "// android.widget.RelativeLayout [1] /android.widget.RelativeLayout [1] /android.widget.TextView [1] ")); drv.getText(); –

+0

希望appiumのインスペクタが役立ちます:) – nullpointer

関連する問題

 関連する問題