1

我有一pageFactory堂课:

public class screenFactory {
    @AndroidFindBy(id = "itemFilm")
    public List<MobileElement> listMovies;

    @AndroidFindBy(id = "tvTitle")
    public List<MobileElement> listTvTitle;
}

每个都itemFilm包含tvTitle(有时不包含)。

问题:我怎样才能检查这个只使用pageFactory

让我们假设情况1:

screenFactory.listMovies.size() equals 6;
screenFactory.listTvTitles.size() equals 6;

那么一切都很好!

让我们假设情况2:

screenFactory.listMovies.size() equals 6;
screenFactory.listTvTitles.size() equals 4;

那么我们有一个问题,如何检测listMovies包含的哪些元素tvTitles是子元素,哪些不是?

换句话说,有两个List<MobileElement>,有没有办法比较MobileElement子/父特征的元素?

问题来自要求不使用By.id("id")或主要功能中的其他定位器但screenFactory仅使用!

如果我在screenFactory此使用:

@HowToUseLocators(androidAutomation = LocatorGroupStrategy.CHAIN)
@AndroidFindBy(id = "itemFilm")
@AndroidFindBy(id = "tvTitle")
public List<MobileElement> listTvTitle;

它不再起作用,因为在上面的情况#2中,它会给我同样的结果:

screenFactory.listMovies.size() equals 6;
screenFactory.listTvTitles.size() equals 4;
4

2 回答 2

0

谢谢!我只是想摆脱 FindElement:

screenFactory.listMovies.get(i).FindElement(By.id("TvTitles"))

但似乎那是不可能的......

于 2018-02-01T00:01:26.890 回答
0

在没有看到您的应用程序的检查器视图的情况下,我可以给出的唯一建议是让您的开发人员在 TV Title 对象的内容描述中提供父信息。然后,您就有了匹配这两个对象所需的关联。

然后,您将遍历每个电影标题,并为每个检查整个电视标题列表以查找匹配的内容描述。

于 2018-01-29T22:33:19.250 回答