【问题标题】:Not getting all element of a dynamic ListView on Selenium + Appium没有在 Selenium + Appium 上获取动态 ListView 的所有元素
【发布时间】:2017-10-05 20:34:11
【问题描述】:

我的 apk Android 上有这个动态 ListView:

<android.widget.ListView resource-id="br.com.noticias:id/editoria_listview">
    <android.widget.LinearLayout>
        <android.widget.RelativeLayout>
                <android.widget.ImageView content-desc="imagem da noticia em destaque" resource-id="br.com.noticias:id/adapter_editoria_first_news_image">
        <android.widget.LinearLayout resource-id="br.com.noticias:id/adapter_editoria_layout">
            <android.widget.TextView resource-id="br.com.noticias:id/adapter_editoria_news_editoria_indicator">
            <android.widget.TextView resource-id="br.com.noticias:id/adapter_editoria_news_title">
    <android.widget.LinearLayout resource-id="br.com.noticiasbr.com.noticias:id/adapter_editoria_layout">
        <android.widget.TextView resource-id="br.com.noticias:id/adapter_editoria_news_editoria_indicator">
        <android.widget.ImageView content-desc="imagem da noticia" resource-id="br.com.noticias:id/adapter_editoria_news_image">
        <android.widget.LinearLayout>
            <android.widget.TextView resource-id="br.com.noticias:id/adapter_editoria_news_title">
    <android.widget.LinearLayout resource-id="br.com.noticias:id/adapter_editoria_layout">
        <android.widget.TextView resource-id="br.com.noticias:id/adapter_editoria_news_editoria_indicator">
        <android.widget.ImageView content-desc="imagem da noticia" resource-id="br.com.noticias:id/adapter_editoria_news_image">
        <android.widget.LinearLayout>
            <android.widget.TextView resource-id="br.com.noticias:id/adapter_editoria_news_title">
    <android.widget.LinearLayout resource-id="br.com.noticias:id/adapter_editoria_layout">
        <android.widget.TextView resource-id="br.com.noticias:id/adapter_editoria_news_editoria_indicator">
        <android.widget.ImageView content-desc="imagem da noticia" resource-id="br.com.noticias:id/adapter_editoria_news_image">
        <android.widget.LinearLayout>
            <android.widget.TextView resource-id="br.com.noticias:id/adapter_editoria_news_title">

我预计这个 LitView 会返回 4 个 WebElements,但它返回了 1 个。

List<MobileElement> listNews = driver.findElements(By.id("br.com.noticias:id/editoria_listview"));

int size = listNews.size();
System.out.println(size);

我做错了什么? 我也尝试使用此代码:

 java.util.Iterator<MobileElement> i = listNews.iterator();
    while(i.hasNext()) {
        MobileElement row = i.next();
        System.out.println(row.getTagName());
    }

我也尝试使用 WebElement 而不是 MobileElement。 结果是一样的。

【问题讨论】:

    标签: java android selenium appium


    【解决方案1】:

    这是因为您使用的是唯一 ID,因此“br.com.noticias:id/editoria_listview”只有一个元素。现在我不确定你是否在寻找新闻的标题,但如果你是,你可以使用这个 ID: "br.com.noticias:id/adapter_editoria_news_title" 应该返回 4 个元素。

    【讨论】:

      猜你喜欢
      • 2014-10-08
      • 2019-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-26
      • 2019-02-07
      • 2019-05-24
      • 2013-03-16
      相关资源
      最近更新 更多