上传到AWS Device Farm时在Appium上显示“使用给定的搜索参数无法在页面上找到元素" [英] 'An element could not be located on the page using the given search parameters' on Appium while uploading to AWS Device Farm

查看:188
本文介绍了上传到AWS Device Farm时在Appium上显示“使用给定的搜索参数无法在页面上找到元素"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用AWS Github的示例应用程序

I am using a sample app from AWS Github

https://github.com/awslabs/aws-用于Android的device-farm-sample-app

我有Appium Inspector记录的Appium脚本.

I have Appium script recorded by Appium Inspector.

import io.appium.java_client.AppiumDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import java.net.URL;

public class AppiumTest {
    public static void main(String[] args) {
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("appium-version", "1.0");
        capabilities.setCapability("platformName", "Android");
        capabilities.setCapability("platformVersion", "5.0.2");
        capabilities.setCapability("deviceName", "HTC");
        capabilities.setCapability("app", "/Users/Kelvin/Dropbox/app-debug.apk");
        wd = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
        wd.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
        //Click hamburger menu
        wd.findElement(By.xpath("//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.support.v4.widget.DrawerLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.view.View[1]/android.widget.ImageButton[1]")).click();
        //Go to 'Login Page'
        wd.findElement(By.xpath("//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.support.v4.widget.DrawerLayout[1]/android.widget.RelativeLayout[1]/android.support.v7.widget.RecyclerView[1]/android.widget.FrameLayout[8]")).click();
        //Input username: admin
        wd.findElement(By.xpath("//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.support.v4.widget.DrawerLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.RelativeLayout[1]/android.widget.EditText[1]")).sendKeys("admin");
        //Input password: password
        wd.findElement(By.xpath("//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.support.v4.widget.DrawerLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.RelativeLayout[1]/android.widget.EditText[2]")).sendKeys("password");
        //Click login
        wd.findElement(By.xpath("//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.support.v4.widget.DrawerLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.RelativeLayout[1]/android.widget.Button[1]")).click();

        wd.close();
    }
}

将其与MAVEN打包并上传到AWS Device Farm之后 返回2条错误消息:

After I package it with MAVEN and upload to AWS Device Farm 2 error messages returned:

  1. 参数是无效的选择器

  1. Argument was an invalid selector

使用给定的搜索参数无法在页面上找到元素.

An element could not be located on the page using the given search parameters.

我不确定Appium Inspector的脚本在AWS Device Farm上如何工作,但是我可以在Appium Inspector中重播".

I'm not sure how doesn't script from Appium Inspector works on AWS Device Farm, but I can "Replay" inside Appium Inspector.

我想搜索参数哪里出错.谢谢.

I would like to where do my search parameters go wrong. Thank you.

这是它的放大图

wd.findElement(By.xpath("//android.widget.LinearLayout [1]/android.widget.FrameLayout [1]/android.widget.LinearLayout [1]/android.widget.FrameLayout [1]/android.support.v4.widget.DrawerLayout [1]/android.widget.LinearLayout [1]/android.widget.LinearLayout [1]/android.view.View [1]/android.widget.ImageButton [1]) ).click();

wd.findElement(By.xpath("//android.widget.LinearLayout[1 ]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.support.v4.widget.DrawerLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.view.View[1]/android.widget.ImageButton[1]")).click();

推荐答案

  1. 在使用AWS Device Farm时,您无需设置DesiredCapabilities,并且设备场将对其进行处理. 因此,从上面的代码中删除下面提到的代码-

  1. When you are working AWS Device Farm you do not need to set DesiredCapabilities and device farme take care of it. So from your above code Remove the code mentioned below -

DesiredCapabilities功能=新的DesiredCapabilities(); abilities.setCapability("appium-version","1.0"); abilities.setCapability("platformName","Android"); abilities.setCapability("platformVersion","5.0.2"); abilities.setCapability("deviceName","HTC"); abilities.setCapability("app","/Users/Kelvin/Dropbox/app-debug.apk");

DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("appium-version", "1.0"); capabilities.setCapability("platformName", "Android"); capabilities.setCapability("platformVersion", "5.0.2"); capabilities.setCapability("deviceName", "HTC"); capabilities.setCapability("app", "/Users/Kelvin/Dropbox/app-debug.apk");

2.AWS设备场使用的是Appium版本1.4.10,因此请确保在本地也使用相同版本,以便上传后不会出现任何错误.

2.AWS Device farm uses Appium Version 1.4.10 so make sure locally also you use same version so that after uploading it will not give any errors.

这篇关于上传到AWS Device Farm时在Appium上显示“使用给定的搜索参数无法在页面上找到元素"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆