此代码不会在真实设备中向下滑动但在模拟器中工作(使用 Appium)
This code Doesn't swipe down in Real device But work in emulator (Use Appium)
我正在使用 Appium For Automation 此代码用于向下滑动,但是当我在真实设备上使用它时它不起作用。如何为真实设备解决此问题。
Dimension dimension = driver.manage().window().getSize();
int start_x = (int) (dimension.width * 0.5);
int start_y = (int) (dimension.height * 0.8);
int end_x = (int) (dimension.width * 0.5);
int end_y = (int) (dimension.height * 0.2);
new TouchAction(driver).press(PointOption.point(start_x, start_y))
.waitAction(WaitOptions.waitOptions(Duration.ofSeconds(2)))
.moveTo(PointOption.point(end_x, end_y)).release().perform();
如果你想要一个可靠的解决方案,你需要避免使用基于屏幕尺寸的滑动,即使你知道尺寸也不是 100% 准确。
使用 AndroidUIAutomator 定位器,您可以在搜索元素旁边自动滚动视图 up/down,例如你只知道文本“Here it is”:
MobileElement element = driver.findElement(MobileBy.AndroidUIAutomator("new UiScrollable(UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\"Here it is\"))";
我个人强烈建议不要使用文本,但请检查 Android docs. Appium docs also has examples 中的 resourceId
和 className
。
我正在使用 Appium For Automation 此代码用于向下滑动,但是当我在真实设备上使用它时它不起作用。如何为真实设备解决此问题。
Dimension dimension = driver.manage().window().getSize();
int start_x = (int) (dimension.width * 0.5);
int start_y = (int) (dimension.height * 0.8);
int end_x = (int) (dimension.width * 0.5);
int end_y = (int) (dimension.height * 0.2);
new TouchAction(driver).press(PointOption.point(start_x, start_y))
.waitAction(WaitOptions.waitOptions(Duration.ofSeconds(2)))
.moveTo(PointOption.point(end_x, end_y)).release().perform();
如果你想要一个可靠的解决方案,你需要避免使用基于屏幕尺寸的滑动,即使你知道尺寸也不是 100% 准确。
使用 AndroidUIAutomator 定位器,您可以在搜索元素旁边自动滚动视图 up/down,例如你只知道文本“Here it is”:
MobileElement element = driver.findElement(MobileBy.AndroidUIAutomator("new UiScrollable(UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\"Here it is\"))";
我个人强烈建议不要使用文本,但请检查 Android docs. Appium docs also has examples 中的 resourceId
和 className
。