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

我想在Android、java client V-5.0.4和appium V-1.7.1中使用appium向下滚动到特定元素

公羊奇
2023-03-14

我正在尝试向下滚动到一个元素,到处寻找和搜索,没有任何代码帮助向下滚动,我已经尝试了与下面的代码似乎不起作用,任何人给我的解决方案,以完美地向下滚动。由于swipe和scrollTo函数在最新的java客户端版本中被贬低了,一个完美的代码将帮助我解决我的任务

package mobileapp.com.example;

import java.net.MalformedURLException;
import java.net.URL;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;

import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.pagefactory.AndroidFindBy;

public class Day5 {

    AndroidDriver<WebElement> driver;

    @AndroidFindBy (uiAutomator = "new UiScrollable(new UiSelector()).scrollIntoView(new UiSelector().textContains(\"PHP\"))")
    public WebElement scrollStepOne;

    @BeforeTest
    public void setup() throws MalformedURLException {
    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability("BROWSER_NAME", "Android");
    capabilities.setCapability("VERSION", "6.0.1");
    capabilities.setCapability("deviceName","Nexus 5");
    capabilities.setCapability("platformName","Android");
    capabilities.setCapability("appPackage", "com.vector.guru99");
    capabilities.setCapability("appActivity","com.vector.guru99.BaseActivity");

    driver= new AndroidDriver<WebElement>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);

    }

    @Test
    public void StartTest() throws InterruptedException {

        //Verify Homepage
        if(driver.findElement(By.id("android:id/action_bar_title")).isDisplayed())
            System.out.println("Home page is displayed");
        else
            System.out.println("Home page is not displayed");

        //step2 - click on Course List tab

        driver.findElement(By.name("Course List")).click();
        System.out.println("Courses list are : ");
        Thread.sleep(3000);

        //Step 3 - darg until PHP course found and click on it
        scrollStepOne.click();
        Thread.sleep(3000);
//      driver.findElement(By.xpath("//android.widget.TextView[@text()='PHP']")).click();
//      Thread.sleep(3333);

        //Step 4 - Click on lesson 1 and verify
        driver.findElement(By.xpath("//android.widget.TextView[@text='What is PHP? Write your first PHP Program']")).click();
        Thread.sleep(3333);

        if(driver.findElement(By.id("com.vector.guru99:id/lesson_title")).isDisplayed())
            System.out.println("First Lesson is displayed");
        else
            System.out.println("First lesson not opened");


    }

    @AfterTest
    public void tearDown() {
        driver.quit();
    }

}

共有1个答案

能帅
2023-03-14

要滚动到一个文本为App_Settings的元素,您可以使用下面的

 androidDriver.findElementByAndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0))" +
        ".scrollIntoView(new UiSelector().description(\"App_Settings\"));");
 类似资料:
  • 我想知道如何向下滚动点击元素在Android使用appium和java? 我在“”中有一个元素列表。由于它有10多个元素,我们需要滑动屏幕以查看以下元素。每个元素都有相同的id,即“”。但他们的文本不同,比如“苹果”、“橘子”、“葡萄”。。。。。。 所有我需要的是滚动并使用其文本单击相关元素(苹果,橙色,葡萄......) 我已经学习了很多教程,但都做不好。我已设法向下滚动屏幕。但当元素位于卷轴的

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

  • 问题内容: 我在向下滚动到iOS和Android应用程序中的某个元素时遇到麻烦。由于从Appium 1.6.3更新到1.7.1,将io.appium更新到6.1.0,因此不建议使用swipe方法,唯一的解决方案是使用TouchActions。 我尝试使用TouchActions解决它,但是它根本没有滚动,或者滚动方向错误。 到目前为止,我的解决方案看起来像这样,也许有人可以解释我做错了什么: 它不

  • 我是自动化领域的新手,我也不懂脚本,但我正在努力学习自动化,我们正在使用java脚本。我正在努力上下滚动页面,查找EULA条款,有人能帮我吗?我使用的是appium 1.7.1版。还有人可以推荐一个使用android studio而不是eclipse的教程吗。 谢谢,我。

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

  • 我有一个应用程序页面,我需要垂直滚动,以达到应用程序的底部保存按钮。 我正在尝试下面的代码,但得到服务器端错误。 有什么好方法可以在android中实现滚动功能吗?