Appium Java,如何使用特定的 pageFactory 要求
Appium Java, How to use specific pageFactory requirement
我有一个 pageFactory
class:
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
与 Child/Parent 特征进行比较?
问题来自要求不要在 main 函数中使用 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;
在没有看到您的应用程序的检查器视图的情况下,我能给出的唯一建议是让您的开发人员在电视节目 objects 的 content-description 中提供 parent 信息。然后你有你需要匹配两个 objects.
的关联
然后您将遍历每个电影标题,并为每个检查整个电视节目列表以找到匹配的content-description。
谢谢!我只是想摆脱 FindElement:
screenFactory.listMovies.get(i).FindElement(By.id("TvTitles"))
但似乎那是不可能的....
我有一个 pageFactory
class:
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
与 Child/Parent 特征进行比较?
问题来自要求不要在 main 函数中使用 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;
在没有看到您的应用程序的检查器视图的情况下,我能给出的唯一建议是让您的开发人员在电视节目 objects 的 content-description 中提供 parent 信息。然后你有你需要匹配两个 objects.
的关联然后您将遍历每个电影标题,并为每个检查整个电视节目列表以找到匹配的content-description。
谢谢!我只是想摆脱 FindElement:
screenFactory.listMovies.get(i).FindElement(By.id("TvTitles"))
但似乎那是不可能的....