Android驱动程序的scrollTo和scrollToExact 方法的问题.方法不会滚动到所需的元素文本,而是滚动

Issue with scrollTo and scrollToExact methods of Android Driver. Methods do not scroll to required element text, but scroll to end of page

本文关键字:滚动 方法 元素 文本 scrollTo 驱动程序 scrollToExact 问题 Android      更新时间:2023-09-26

我们正在开发一个Cordova移动应用程序。在屏幕上,我们有一个表格格式的值列表。如果我们想选择移动设备上不可见范围内的元素,我们需要执行滚动操作。已经尝试了scrollTo()scrollToExact()的方法,但这些方法不会滚动到所需的元素文本,而是超出它,即列表中的值末尾。

移动到本机上下文以执行滚动,具有相同的结果。

另外,尝试了Javascript方法window.scrollTo()scrollintoView(),但滚动移动到所需的元素。

有没有其他方法可以实现在移动屏幕上滚动到必要的元素,这样它就不会滚动到必要的元素?

Appium 版本: 1.2.3
Java 客户端版本:2.1.0

谢谢 ShlomiTC 的帮助,我可以通过首先检查屏幕上是否有可用的元素并使用无限循环重复滚动屏幕直到单击元素来让它工作。如果未单击元素,则会发生异常,因此 try/catch 块在这里帮助了我。希望这对任何有类似问题的人有所帮助。

  js = (JavascriptExecutor) driver; 
  js.executeScript("window.scrollTo(0,0)"); 
  do 
  {
  try
  {
   driver.findElement(By.xpath(<xpathexpresssion>).click();
   break;
     }
  catch(Exception e)
  {
    js = (JavascriptExecutor) driver; 
    js.executeScript("window.scrollBy(0, 200)");
   }
 } while(true);