当前位置: 首页 > 知识库问答 >
问题:

android原生应用中的滚动问题

干子瑜
2023-03-14

我正在使用appium和java来自动化我的应用程序。我需要在页面中滚动到特定的文本/元素。我两天来一直在努力,已经尝试了许多解决方案,但都不起作用。列出所有的解决方案和场景:

Appium版本:1.4.0 Java客户端版本:4.1.2驱动程序:RemoteWebDriver

解决方案1。1:尝试使用Java脚本。以下是代码:

JavascriptExecutor js = (JavascriptExecutor)driver;
HashMap scrollObjects = new HashMap();
scrollObjects.put("direction", "down");
scrollObjects.put("text", "Yes");
js.executeScript("mobile: swipe", scrollObjects)

解决方案1.2:

WebElement wb = driver.findElement(By.xpath("//*[@resource-id =           'com.practo.fabric:id/toolbar']/following-sibling::android.widget.LinearLayout"));
JavascriptExecutor js = (JavascriptExecutor)driver;
HashMap scrollObjects = new HashMap();
scrollObjects.put("direction", "down");
scrollObjects.put("text", "Yes");
scrollObjects.put("element",wb);
js.executeScript("mobile: swipe", scrollObjects);

这里的问题是我没有列表视图。我有线性布局,所以也尝试过提供线性布局xpath一次,但没有运气。

解决方案二:

org.openqa.selenium.Dimension size =driver.manage().window().getSize();     
int starty = (int) (size.height * 0.80); 
int endy = (int) (size.height * 0.20);
int startx = size.width / 2; 
driver.swipe(startx, starty, startx, endy, 3000); 
System.out.println("swiping is done ");

这里driver.swipe是给错误,因为我是远程Web驱动程序。当我尝试使用Android驱动程序它说不建议使用。

在这种情况下我该怎么办?

共有2个答案

高展
2023-03-14

我从java客户端使用AppiumDriver解决了这个问题。当我使用最新的java客户端版本(5.0.0-BETA6)时,它说“滑动”方法不受欢迎。但它是有效的。

driver.swipe(300, 701, 300, 441, 3000);

还使用TouchAction类解决了这个问题。

TouchAction action = new TouchAction(driver);   
action.press(300, 701).waitAction(2000).moveTo(300, 441).release();
action.perform();

注:坐标是硬编码的。

酆奇文
2023-03-14

由于appium服务器和java客户端库版本不匹配,您将面临这个问题。请将appium server更新为1.5/1.6,否则您可以使用java客户端库版本2.1.0。

如果您选择使用java-client2。1.0在appium 1.4中,我们有一个名为“scrollTo”的方法,可以滚动到特定的文本。我还使用了您在这个组合的解决方案2中提到的“滑动”。

driver.scrollTo("Like"); //Scrolls to Like text in the app
 类似资料:
  • 我们使用以下链接生成了一个访问令牌:https://graph.facebook.com/oauth/access_token?grant_type=client_credentials 它给了我们这样一个访问令牌:AQRtositr-Km47sometextwohp-7heCCDHmKE 但现在,当我们想在本地Facebook应用程序中进行身份验证时,它会生成以下AccessToken:ABBD

  • 当我将移动主题从浅色改为深色时,它会影响react原生应用程序的背景颜色。我只想让它始终保持白色,但当我改变我的移动主题从光明到黑暗时,它会变成白色到黑色。Android版本10 React原生版本0.61.5 React版本16.9.0

  • 当我在模拟器(pixel Android10)中运行我的react原生应用程序时,我注意到当手机设置为暗模式时,应用程序将白色背景改为黑色。这使得很难阅读黑色文本或其他任何东西。有没有一种方法可以强迫应用程序在轻主题下运行,尽管操作系统处于暗模式或轻模式

  • 我有一个用Kotlin(android studio)编写的android应用程序和用React Native编写的应用程序的UI。我的问题是这些能联系在一起吗?如果是,怎么做?还有,你们能发布一些我可以通过的链接吗。 附注:我对react Native一无所知。