【问题标题】:Unable to scroll down in android with appium无法使用appium在android中向下滚动
【发布时间】:2016-03-24 02:48:20
【问题描述】:

Appium 版本:1.4.0.0

操作系统:Windows 7

库:android.AndroidDriver

selenium.WebDriver

我正在使用 Java 通过 Appium 实现自动化

我试过下面的代码。

driver.swipe(381, 783, 364, 218, 3000);
driver.scrollTo("Confirm");
driver.scrollToExact("Confirm");

使用 scrollto 时出错:org.openqa.selenium.NoSuchElementException:使用给定的搜索参数无法在页面上找到元素。

使用滑动时出错:java.lang.NullPointerException

【问题讨论】:

  • 您是否为驱动程序覆盖了 scrollTo 方法?如果是,怎么做?

标签: java android selenium scroll appium


【解决方案1】:

我使用这段代码在IOS中垂直滑动:

Dimension size = driver.manage().window().getSize(); 

int starty = (int) (size.height * 0.80);

//Find endy point which is at top side of screen. 
int endy = (int) (size.height * 0.20); 

//Find horizontal point where you wants to swipe. It is in middle of screen width. 
int startx = size.width / 2; 

//Swipe from Bottom to Top. 
driver.swipe(startx, starty, startx, endy, 3000); 
makeWait(2);

希望对你有帮助。

【讨论】:

    【解决方案2】:

    已经创建了一个滑动(包装)的函数

     public void scroll() throws IOException {
                  try {
                    Dimension dimensions = driver.manage().window().getSize();
                    System.out.println("Size of Window= " +dimensions);
                    int scrollStart = (int) (dimensions.getHeight() * 0.5);
                    System.out.println("Size of scrollStart= " +scrollStart);
                    int scrollEnd = (int) (dimensions.getHeight() * 0.2);
                    System.out.println("Size of cscrollEnd= " + scrollEnd);             
                    driver.swipe(0,scrollStart,0,scrollEnd,1000);           
    
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
    
                    }
    
              }
    

    将此添加到您的代码中,并在您的测试用例中简单地使用scroll();

    【讨论】:

    • 我使用了正确的 jar 文件吗? “java-client-2.1.0.jar”?
    • 我在之前的代码中遇到了同样的错误 driver.swipe(381, 783, 364, 218, 3000);我正在使用 WebDriver 驱动程序; AndroidDriver 驱动程序;
    • 我不认为你正确使用我的代码..因为它在我的工作中..你可以发布你的整个代码以及你如何运行脚本
    【解决方案3】:

    您可以使用屏幕坐标向下滚动:

    public void scrollDown() {
        Dimension size = driver.manage().window().getSize();
        int x = size.width / 2;
        int starty = (int) (size.height * 0.60);
        int endy = (int) (size.height * 0.10);
        driver.swipe(x, starty, x, endy, 2000);
    }
    

    【讨论】:

      猜你喜欢
      • 2019-12-24
      • 2015-01-23
      • 2019-02-07
      • 2016-05-26
      • 2017-08-27
      • 2015-06-22
      • 2016-05-16
      • 2019-02-28
      • 2016-12-16
      相关资源
      最近更新 更多