如何在 Eclipse 中为 Appium Server 修复 URL 定义

Posted

技术标签:

【中文标题】如何在 Eclipse 中为 Appium Server 修复 URL 定义【英文标题】:How to fix URL definitions in Eclipse for Appium Server 【发布时间】:2019-04-17 01:44:36 【问题描述】:

我是 Eclipse 的新手。我正在尝试在 android 设备上启动 Appium 测试。我的喜好:

Appium 1.8.2 jre1.8.0_191 jdk1.8.0_191 eclipse 4.9.0 测试NG AndroidStudio 3.2.1 AndroidDeveloperTools

所以在安装后,配置 Appiumserver、Android SDK、Android 设备管理器 - 下一步是在 Eclipse IDE 中开始测试我在定义 URL 时遇到了问题,不知道该怎么做。 jar 文件:

java-client-6.1.0.jar gson-2.8.5.jar client-combined-3.9.0-sources.jar client-combined-3.9.0.jar seleium-3.9.0-nodeps-sources.jar seleium-3.9.0-nodeps.jar seleium-html-runner-3.9.0.jar seleium-server-standalone-3.9.0.jar 测试NG JRE 系统库

就是这样

import io.appium.java_client.MobileElement;
import io.appium.java_client.android.AndroidDriver;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;


public class FirstScript 
    private URL           serverUrl;

    public static AndroidDriver driver;

        public String APPIUM_PORT = "4723";

    @BeforeClass
    public void setUp() throws MalformedURLException
        //Set the Desired Capabilities
        DesiredCapabilities caps = new DesiredCapabilities();
        caps.setCapability("deviceName", "Samsung S7");
        caps.setCapability("udid", "******************"); //Give Device ID of your mobile phone
        caps.setCapability("platformName", "Android");
        caps.setCapability("platformVersion", "8.0");
        caps.setCapability("appPackage", "com.***.***");
        caps.setCapability("appActivity", "com.***.***.MainActivity");
        caps.setCapability("noReset", "true");
        try 
                serverUrl = new URL("http://127.0.0.1:4723/wd/hub");
             catch (MalformedURLException e) 
                e.printStackTrace();
            
        driver = new AndroidDriver (serverUrl,caps);
        driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
    

    @Test
    public void testExample() ***

    @AfterClass
    public void tearDown() driver.closeApp();

Running debug for this code with error

Server is working

【问题讨论】:

可以分享一下错误截图吗?这将帮助我们更好地了解您的问题。或者尝试使用 localhost 而不是 IP 地址。 Error screenshot 检查我的回答,希望它能解决您的问题。 【参考方案1】:

我建议你使用maven项目和依赖:java-clientselenium-javatestng

如果不想使用maven项目,需要在eclipse中导入以上库。为此,在您的 Eclipse 工作区中,右键单击左侧窗格中的项目 -> 属性 -> Java 构建路径 -> 添加罐子 -> 在此处添加罐子。

更改您的代码如下:

public class FirstScript 

   public static AppiumDriver<MobileElement> driver;

    @BeforeClass
    public void setUp() throws MalformedURLException
        //Set the Desired Capabilities
        DesiredCapabilities caps = new DesiredCapabilities();
        caps.setCapability("deviceName", "Samsung S7");
        caps.setCapability("udid", "******************"); //Give Device ID of your mobile phone
        caps.setCapability("platformName", "Android");
        caps.setCapability("platformVersion", "8.0");
        caps.setCapability("appPackage", "com.***.***");
        caps.setCapability("appActivity", "com.***.***.MainActivity");
        caps.setCapability("noReset", "true");

        driver = new AndroidDriver (new URL("http://127.0.0.1:4723/wd/hub"),caps);
        driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
    



【讨论】:

我已经在使用这些库了: 1. java-client-6.1.0.jar 2. gson-2.8.5.jar 3. client-combined-3.9.0-sources.jar 4 .client-combined-3.9.0.jar 5.seleium-3.9.0-nodeps-sources.jar 6.seleium-3.9.0-nodeps.jar 7.seleium-html-runner-3.9.0.jar 8.seleium -server-standalone-3.9.0.jar 9. TestNG 10. JRE 系统库 是的!但问题出在 Selenium 3.9.0 - 3.141.59 的最新版本中。由于某些原因,在代码中输入了 您可以使用 WebElement 代替 MobileElement【参考方案2】:

您的问题的解决方案是您使用 Selenium 的最新稳定版本,即 3.141.5

如果您有 Java 项目,那么在添加新的最新版本 jar 之前,请确保首先删除所有与 selenium 相关的旧 jar,然后将新下载的 jar 版本添加到构建路径。

如果是 Maven 项目,请将 selenium 依赖版本更新为最新版本并在终端上运行以下命令,

$ mvn clean install

【讨论】:

以上是关于如何在 Eclipse 中为 Appium Server 修复 URL 定义的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Eclipse 在 Appium 上运行脚本测试?

无法在 Windows 中为 android 模拟器连接 appium 检查器

我无法使用 Java 在 Appium 中为我制作滑动手势

Eclipse+Appium+夜神虚拟机环境调试

如何在eclipse中为java代码添加快捷键

如何在 Eclipse 中为 Gluon 移动应用程序配置 Android 的 USB 调试?