处理页面对象模型中的滚动
Handling scrolling in a page object model
使用页面对象模型模式时滚动到页面中的元素的最佳做法是什么?
如果重要的话,我的测试是 Appium 测试,它将 运行 在本机 iOS 和 Android 应用程序上进行。
假设我有这个页面:
public class LoginPage {
private AndroidDriver<AndroidElement> driver;
public LoginPage(AndroidDriver<AndroidElement> driver) {
this.driver = driver;
PageFactory.initElements(new AppiumFieldDecorator(driver), this);
}
@AndroidFindBy(className = "UIAKeyboard")
private AndroidElement keyboard;
@AndroidFindBy(id = "name")
private AndroidElement nameElement;
@AndroidFindBy(id = "password")
private AndroidElement passwordElement;
@AndroidFindBy(id = "login")
private AndroidElement loginElement;
public void scrollToLoginButton() {
//......
}
}
除了手动使用 FluentWait
之外,是否有一些内置的 way/best 练习向下滚动到登录按钮,每次都在 until
方法中激活 TouchAction我怎么找不到可点击的按钮?
driver.findElement(MobileBy.AndroidUIAutomator(
"new UiScrollable(new UiSelector().scrollable(true)).scrollTextIntoView(\"login\")"));
你可以使用 adroidUIAutomater class uiscrollable, see any method that'suites ui
https://developer.android.com/reference/androidx/test/uiautomator/UiScrollable
如果您想使用 selenium 中的操作 class,请使用:
import org.openqa.selenium.interactions.Actions;
new Actions(driver).clickAndHold(e2).moveByOffset(0, -500).perform();
注意: 你必须点击并按住屏幕底部的元素并向后滚动,这就是为什么 -500
或从最后一个元素移动到第一个元素:
Actions action = new Actions(driver);
action.clickAndHold(e2).moveToElement(e1);
action.perform();
使用页面对象模型模式时滚动到页面中的元素的最佳做法是什么?
如果重要的话,我的测试是 Appium 测试,它将 运行 在本机 iOS 和 Android 应用程序上进行。
假设我有这个页面:
public class LoginPage {
private AndroidDriver<AndroidElement> driver;
public LoginPage(AndroidDriver<AndroidElement> driver) {
this.driver = driver;
PageFactory.initElements(new AppiumFieldDecorator(driver), this);
}
@AndroidFindBy(className = "UIAKeyboard")
private AndroidElement keyboard;
@AndroidFindBy(id = "name")
private AndroidElement nameElement;
@AndroidFindBy(id = "password")
private AndroidElement passwordElement;
@AndroidFindBy(id = "login")
private AndroidElement loginElement;
public void scrollToLoginButton() {
//......
}
}
除了手动使用 FluentWait
之外,是否有一些内置的 way/best 练习向下滚动到登录按钮,每次都在 until
方法中激活 TouchAction我怎么找不到可点击的按钮?
driver.findElement(MobileBy.AndroidUIAutomator(
"new UiScrollable(new UiSelector().scrollable(true)).scrollTextIntoView(\"login\")"));
你可以使用 adroidUIAutomater class uiscrollable, see any method that'suites ui
https://developer.android.com/reference/androidx/test/uiautomator/UiScrollable
如果您想使用 selenium 中的操作 class,请使用:
import org.openqa.selenium.interactions.Actions;
new Actions(driver).clickAndHold(e2).moveByOffset(0, -500).perform();
注意: 你必须点击并按住屏幕底部的元素并向后滚动,这就是为什么 -500
或从最后一个元素移动到第一个元素:
Actions action = new Actions(driver);
action.clickAndHold(e2).moveToElement(e1);
action.perform();