0

我无法初始化 appium 驱动程序。请帮忙。

我在初始化时收到以下错误消息:

Exception in thread "main" java.lang.NoSuchMethodError: org.openqa.selenium.remote.http.HttpClient$Factory.createDefault()Lorg/openqa/selenium/remote/http/HttpClient$Factory;
    at io.appium.java_client.remote.AppiumCommandExecutor.<init>(AppiumCommandExecutor.java:93)
    at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:93)
    at io.appium.java_client.android.AndroidDriver.<init>(AndroidDriver.java:95)
    at com.xceedance.framework.Hybrid.AppiumWebsite.main(AppiumWebsite.java:53)

我使用了以下代码-

 AppiumDriver driver;
 DesiredCapabilities capability = new DesiredCapabilities();

 capability.setCapability("deviceName","emulator-5554");

 capability.setCapability(MobileCapabilityType.AUTOMATION_NAME, "uiautomator2");
 capability.setCapability("browserName","Chrome");

 capability.setCapability("platformName","Android");

 capability.setCapability(MobileCapabilityType.PLATFORM_VERSION, "7.1.1");

 capability.setCapability("appPackage","com.android.chrome");

 capability.setCapability("appActivity", "com.google.android.apps.chrome.Main");

  driver=new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),capability);
4

4 回答 4

0

看起来像 appium/selenium 兼容性问题。寻找最新版本并尝试。

于 2019-02-26T12:55:46.670 回答
0

根本原因是您很可能已经针对缺少方法的类的不同版本编译了一个类,而不是您在运行它时使用的版本。

堆栈跟踪中明确提到该方法不存在。如果在对库中的对象调用方法时出现异常,则很可能在编译和运行时使用了不同版本的库。确保您在两个地方都有正确的版本。

所以这是兼容性问题,HttpClient.Factory 类属于selenium库,所以请检查 selenium 版本是否兼容

于 2019-03-03T09:55:05.927 回答
0

您创建的会话不正确,您可以阅读Appium 官方文档以进行 Web 测试设置。

首先,确保:

  • Chrome 已安装在您的设备或模拟器上。
  • Chromedriver 已安装并与您设备上的 Chrome 版本兼容。在这里检查

通过以下方式创建会话:

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "7.1.1");
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "emulator-5554");
capabilities.setCapability(MobileCapabilityType.BROWSER_NAME, "Chrome");
AppiumDriver  driver=new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),capability);

如果您会收到如下错误:

An unknown server-side error occurred while processing the command.
Original error: unknown error: Chrome version must be >= 55.0.2883.0

然后使用正确版本的 chromedriver 重新安装 appium:

npm install appium --chromedriver_version="your_version"
于 2019-02-26T13:16:39.427 回答
0

试试下面的代码:

import org.openqa.selenium.remote.DesiredCapabilities;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;



    File fs = new File("src");  //Assume your aap is inside src folder.
    File appPath = new File(fs, "YourAppAPK.apk");

    DesiredCapabilities caps = new DesiredCapabilities();
    caps.setCapability("deviceName", "RealDeviceNameOrEmulatorName");
    caps.setCapability("app",appPath.getAbsolutePath());
    caps.setCapability("automationName","uiautomator2");
    caps.setCapability("platformName", "android");
    AndroidDriver<AndroidElement> driver = new AndroidDriver<AndroidElement>(new URL("http://127.0.0.1:4723/wd/hub"), caps);
    driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);

    // Test Actions Here
     System.out.println("Android Driver Started: "+driver);
于 2019-03-02T17:53:14.943 回答