滚动并单击 - 使用selenium java在Appium工具上不适用于Android和iOS

时间:2016-09-23 04:43:27

标签: java android ios selenium appium

我正在尝试滚动它并不适用于Android和iOS,你能帮我解决这个问题。

期待收到你的回复。

尝试使用ScrollTO和ScrollToExact,因为它们现在都已弃用,所以尝试使用它:

        String str = "CADILLAC";
        driver.findElementByAndroidUIAutomator("new UiScrollable(new  UiSelector().scrollable(true).instance(0)).scrollIntoView(new  UiSelector().textContains(\""+str+"\").instance(0))").click();

仍然无效。

经历过许多博客,视频,课程内容和材料,没有人解释过,或者有关于如何处理这个问题的具体解决方案

尝试过以下,仍然会收到错误

  

org.openqa.selenium.WebDriverException:

driver.findElementByAndroidUIAutomator("UiSelector().resourceId(\"current_value_tv\").text(\"All Makes\")").click();
driver.findElementByAndroidUIAutomator("UiSelector().className(\"android.widget.TextView\").text(\"AUSTIN HEALEY\")").click();
  

org.openqa.selenium.WebDriverException:未知的服务器端错误
  处理命令时发生。 (警告:服务器没有   提供任何堆栈跟踪信息)           命令持续时间或超时:45毫秒           构建信息:版本:'2.45.0',修订版:'32a636c',时间:'2015-03-05 22:01:35'           系统信息:主机:'NCA1026471',ip:'192.168.56.1',os.name:'Windows 7',os.arch:'amd64',os.version:'6.1',java.version:   '1.8.0_91'           驱动程序信息:io.appium.java_client.android.AndroidDriver           功能[{app = C:\ Appium \ workspace \ Lokesh \ app \ app-release.apk,
  appPackage = au.com.carsguide,rotate = true,   networkConnectionEnabled = true,noReset = true,warnings = {},   handlesAlerts = true,deviceName = Carsguide产品,版本= 0.17.0,   platform = ANDROID,appActivity = au.com.carsguide.activity.HomeActivity,   desired = {app = C:\ Appium \ workspace \ Lokesh \ app \ app-release.apk,   appPackage = au.com.carsguide,   appActivity = au.com.carsguide.activity.HomeActivity,noReset = true,   platformVersion = 5.0,browserName =,platformName = Android,   deviceName = Carsguide Product,device = Android},acceptSslCerts = true,   platformVersion = 21,automationName = selendroid,browserName = selendroid,   takesScreenshot = true,javascriptEnabled = true,platformName = android,   设备的Android =}]           会议ID:e90cac4d-38aa-99fd-2dd2-70cc09a0e717          ***元素信息:{Using = -android uiautomator,value = UiSelector()。resourceId(“current_value_tv”)。text(“All Makes”)}     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native   方法)

3 个答案:

答案 0 :(得分:0)

您可以尝试以下代码,我在设置页面上尝试此代码..

AppiumDriver driver = new AndroidDriver(new URL(""), cap1);

driver.scrollTo("About phone");

传递应用页面底部的字符串。

driver.scrollTo("Enter your value");

使用适当的等待声明。

答案 1 :(得分:0)

使用driver.swipe而不是driver.scroll

http://automationbyharsh.blogspot.in/

访问此博客,获取有关Android和IOS的滑动方法的完整文档。

答案 2 :(得分:0)

scrollTO方法在Android应用程序的appium中不一致。所以尝试以下方法。 转到型号列表页面

尝试下面的代码片段,这是针对flipkart应用 它可以帮助您使用您的应用程序

driver.findElementById(“com.flipkart.android:id/search_autoCompleteTextView”)。sendKeys(“Reebok Shoes”+“\ n”);         了Thread.sleep(8000);

    Dimension size = driver.manage().window().getSize();
    System.out.println(size);

    int Starty=(int)(size.height*0.90);
    int Endy=(int)(size.height*0.10);

    int Startx=(int)(size.width*0.50);


    WebElement ele_item = driver.findElementByClassName("android.widget.TextView");
    Thread.sleep(3000);
    do
    {

        List<WebElement> ele_item2 = driver.findElementsByXPath("//*[@index='2'][@text='Reebok SPEED XT Running Shoes'][@class='android.widget.TextView']");
        int size2 = ele_item2.size();
        System.out.println(size2);

        if(size2>0)
        {
            driver.findElementByXPath("//*[@index='2'][@text='Reebok SPEED XT Running Shoes'][@class='android.widget.TextView']").click();
            break;
        }


        driver.swipe(Startx, Starty, Startx, Endy, 1000);
        Thread.sleep(2000);

    } while(ele_item.isDisplayed()==true);