如何到达appium中滚动条的末尾?
How to reach the end of a scroll bar in appium?
我正在尝试自动滚动水平条,其中条的元素是动态的,并且是从 API 中获取的。
有没有办法在 appium 中实现自动化?
如果页面底部有任何元素或文本,则可以使用 UiAutomator2。
如果您使用的是 appium,请添加所需的功能 'UiAutomator2'。
capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, "UiAutomator2");
如果你有元素的 id,现在使用下面的函数
public void scrollByID(String Id, int index) {
try {
driver.findElement(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().resourceId(\""+Id+"\").instance("+index+"));"));
} catch (Exception e) {
e.printStackTrace();
}
}
如果您有元素的文本,请使用此选项。
public void scrollByText(String menuText) {
try {
driver.findElement(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textMatches(\"" + menuText + "\").instance(0));"));
} catch (Exception e) {
e.printStackTrace();
}
}
如果您不知道 botton 中的任何元素,那么您必须使用屏幕尺寸
public void scrollToBottom() {
int x = driver.manage().window().getSize().width / 2;
int start_y = (int) (driver.manage().window().getSize().height * 0.2);
int end_y = (int) (driver.manage().window().getSize().height * 0.8);
TouchAction dragNDrop = new TouchAction(driver)
.press(PointOption.point(x,start_y)).waitAction(WaitOptions.waitOptions(Duration.ofMillis(500)))
.moveTo(PointOption.point(x, end_y))
.release();
dragNDrop.perform();
}
我正在尝试自动滚动水平条,其中条的元素是动态的,并且是从 API 中获取的。
有没有办法在 appium 中实现自动化?
如果页面底部有任何元素或文本,则可以使用 UiAutomator2。
如果您使用的是 appium,请添加所需的功能 'UiAutomator2'。
capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, "UiAutomator2");
如果你有元素的 id,现在使用下面的函数
public void scrollByID(String Id, int index) {
try {
driver.findElement(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().resourceId(\""+Id+"\").instance("+index+"));"));
} catch (Exception e) {
e.printStackTrace();
}
}
如果您有元素的文本,请使用此选项。
public void scrollByText(String menuText) {
try {
driver.findElement(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textMatches(\"" + menuText + "\").instance(0));"));
} catch (Exception e) {
e.printStackTrace();
}
}
如果您不知道 botton 中的任何元素,那么您必须使用屏幕尺寸
public void scrollToBottom() {
int x = driver.manage().window().getSize().width / 2;
int start_y = (int) (driver.manage().window().getSize().height * 0.2);
int end_y = (int) (driver.manage().window().getSize().height * 0.8);
TouchAction dragNDrop = new TouchAction(driver)
.press(PointOption.point(x,start_y)).waitAction(WaitOptions.waitOptions(Duration.ofMillis(500)))
.moveTo(PointOption.point(x, end_y))
.release();
dragNDrop.perform();
}