我正在尝试使用以下代码滚动到元素:
@AndroidFindBy(uiAutomator =“new UiScrollable(new UiSelector())。scrollIntoView(”+“new UiSelector()。text(\”Contacts \“));”) @iOSFindBy(uiAutomator =“new UiScrollable(new UiSelector())。scrollIntoView(”+“new UiSelector()。text(\”Contacts \“));”) public MobileElement orgContact;
这适用于Android,但在iOS上我收到以下错误: org.openqa.selenium.NoSuchElementException:无法通过此策略找到元素:定位器映射: - 原生内容:“By.IosUIAutomation:new UiScrollable(new UiSelector())。scrollIntoView(new UiSelector()。text(”Contacts“));”
我还尝试滚动使用: public void verticalScroll(AppiumDriver driver){
this.driver=driver;
dimensions = driver.manage().window().getSize();
Double screenHeightStart = dimensions.getHeight() * 0.5;
int scrollStart = screenHeightStart.intValue();
System.out.println("s="+scrollStart);
Double screenHeightEnd = dimensions.getHeight() * 0.2;
int scrollEnd = screenHeightEnd.intValue();
driver.swipe(0,scrollStart,0,scrollEnd,5000);
} 但它也行不通。 任何人都可以建议我在这里做错了什么
答案 0 :(得分:-1)
Shalom Ronit。
您的代码不起作用的原因是因为您正在为@iOSFindBy
使用Android定位器策略,这是错误的,非常错误。
根据您的Xcode版本,您可能无法在iOS上使用UiAutomator(在Xcode 8中Apple已删除此选项)
您必须使用ID /辅助功能ID甚至Xpath。请花一些时间研究定位器策略,搜索示例以及如何正确查找iOS元素。
由于我不熟悉您尝试自动化的应用程序,因此无法提供更多帮助。这个元素有ID吗?是可见的还是你必须滚动才能找到它?你甚至知道如何使用driver.findBy()?