Appium-uiAutomator适用于Android但不适用于iOS

时间:2017-03-27 13:16:10

标签: appium appium-ios

我正在尝试使用以下代码滚动到元素:

@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);

} 但它也行不通。 任何人都可以建议我在这里做错了什么

1 个答案:

答案 0 :(得分:-1)

Shalom Ronit。

您的代码不起作用的原因是因为您正在为@iOSFindBy使用Android定位器策略,这是错误的,非常错误。

根据您的Xcode版本,您可能无法在iOS上使用UiAutomator(在Xcode 8中Apple已删除此选项)

您必须使用ID /辅助功能ID甚至Xpath。请花一些时间研究定位器策略,搜索示例以及如何正确查找iOS元素。

由于我不熟悉您尝试自动化的应用程序,因此无法提供更多帮助。这个元素有ID吗?是可见的还是你必须滚动才能找到它?你甚至知道如何使用driver.findBy()?