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

如何使用appium滚动到iOS中不可见的元素

张晔
2023-03-14

我使用以下代码滚动到不可见的元素:

WebElement element = driver.findElementByName("text");

        JavascriptExecutor js = (JavascriptExecutor) driver;
        HashMap<String, String> scrollObjects = new HashMap<String, String>();
        scrollObjects.put("element", ((RemoteWebElement) element).getId());
        js.executeScript("mobile: scrollTo", scrollObjects);

当我使用上述方法进行滚动时,出现以下错误:-

未知命令,除滚动外的所有移动命令都已删除。

在Appium 1.5.0中,名称定位器被删除

在java客户机v4.0.0中,scrollTo()scrollToExact()被弃用。

我使用的是xpath而不是findElementByName()

什么是移动解决方案:滚动到

共有1个答案

时浩波
2023-03-14

我已经找到了这个问题的答案。使用元素和方向作为滚动方法的参数。

WebElement element = driver.findElementByName("text");

JavascriptExecutor js = (JavascriptExecutor) driver;

HashMap scrollObjects = new HashMap();
scrollObjects.put("element", ((RemoteWebElement) element).getId());
scrollObjects.put("direction", "down");
driver.executeScript("mobile: scroll", scrollObjects );

参考资料:-https://pioneer2k9.blogspot.in/2016/08/mobile-scroll-command-is-not-working-in_4.html

 类似资料:
  • 我正在制作一个网站,我认为导航栏会导致较小的设备太大。我发现了如何使它可滚动,但我不喜欢它旁边显示一个新的滚动条。我怎样才能让它隐形?

  • 我的元素在屏幕上不可见,但当我使用.isDisplayed()方法时,我的代码如下 send_mail是要找到的元素的xpath。这是tracelog的帮助!我不能使用while循环进行迭代,直到元素在应用程序中被视为可见时才显示出来。

  • 有什么更好的策略来处理这个问题呢?我们使用pagefactory模式,主要使用xpath、可访问性标签和id来标识元素。如果有帮助,测试中的应用程序是react原生应用程序。

  • 在iOS和Android应用程序中,我无法向下滚动到某个元素。由于从Appium 1.6.3更新到1.7.1,从io.Appium更新到6.1.0,因此不推荐使用滑动方法,唯一的解决方案是使用TouchActions。 我试图用TouchActions解决它,但它根本没有滚动,或者滚动方向错误。 到目前为止,我的解决方案是这样的,也许有人能解释我做错了什么: 这不是完整的代码,但我希望你明白。 如

  • 我的目标是在下拉列表中向下滚动,直到用户可以看到TN等状态。当scrollTo()方法工作时,这在Appium中是可能的,但在当前的Appium构建中,它们被弃用。我试过驾驶。但是什么也没发生。我不太熟悉iOS谓词,但也尝试过使用它们。 到目前为止,替代方案已经尝试过,但都没有奏效: #1 #2:

  • 我使用了下面的方法,但它在方法上显示了错误。此方法在驱动程序类中不可用。因此,请建议是否有其他方法可以滚动到iOS Appium v1。7.2。