“类型org.openqa.selenium.remote.http.HttpClient $ Factory无法解析。”selenium脚本中的错误消息

问题描述 投票:1回答:7

我正在尝试使用eclipse和Appium上的selenium webdriver为Android应用程序构建测试框架。我没有使用Maven。启动应用程序的初始脚本如下:

package executionEngine;

import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;

import io.appium.java_client.android.AndroidDriver;

public class DriverScript {
	
	public static AndroidDriver driver = null;
	


	public static void main(String[] args) throws MalformedURLException {
		// TODO Auto-generated method stub
		

		File app = new File(System.getProperty("user.dir")+"\\BP_QASTG.apk");
		
		// Created object of DesiredCapabilities class.
		
		  DesiredCapabilities capabilities = new DesiredCapabilities();
		  //capabilities.setCapability(CapabilityType.BROWSER_NAME,"");

		  // Set android deviceName desired capability. Set your device name.
		  capabilities.setCapability("deviceName", "Galaxy Tab A");


		  // Set android VERSION desired capability. Set your mobile device's OS version.
		  capabilities.setCapability(CapabilityType.VERSION, "6.0.2");

		  // Set android platformName desired capability. It's Android in our case here.
		  capabilities.setCapability("platformName", "Android");

		  // Set android appPackage desired capability. It is

		  capabilities.setCapability("appPackage", "com.rivigo.zoombp.rivigozoombpapp");

		  // Set android appActivity desired capability. It is

		  capabilities.setCapability("appActivity", "com.rivigo.zoombp.rivigozoombpapp.activity.Activity.RivigoHomeActivity");
		  capabilities.setCapability("app", app.getAbsolutePath());

		  // Set appium server address and port number in URL string.
		  //AndroidDriver  driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities);
	  driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
	  //driver = (AndroidDriver)((new URL("http://127.0.0.1:4723/wd/hub"), capabilities));    		  
		  driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);

	}

}

在上面的代码中,我声明URL的行用RED标记并悬停在它上面显示了这条消息:“类型org.openqa.selenium.remote.http.HttpClient $ Factory无法解析。它是间接引用的必需的.class文件“

我看到许多答案要求添加所需的jar文件;但我确定我已经添加了所有需要的jar文件。如果有人可以指出我可能错过的特定jar文件,如果确实是问题,那将是很好的,这样我就可以下载并单独添加它。

我已经看到其他答案要求删除并重新添加JRE系统库或关闭并修复项目等,这对我不起作用。

我也尝试过eclipse-neon和eclipse-mars版本。请询问您需要的任何细节,

我在这里被封锁了很长一段时间,对此的帮助将不胜感激,

谢谢,拉胡尔

android eclipse selenium-webdriver jar appium
7个回答
1
投票

在创建驱动程序对象之前尝试以下代码。 System.setProperty("webdriver.http.factory", "apache");


0
投票

这需要

commons-validator.jar

它具有一组方法来执行常见的http和其他用户请求和验证。

亲切地更新您的硒罐,现在已经有2.5倍或更多


0
投票

当我按照以下步骤操作时,问题就解决了

  • 创建了一个新项目
  • 添加了Selenium(2.53.1),gson(2.2.4-sources)和javaclient(4.0.0)罐子

以前我添加了不同版本的java客户端jar;我之前没有添加任何gson jar。也许这些变化解决了我的问题。 (虽然我不确定)

此致,拉胡尔


0
投票

这个问题今天发生了。

我刚刚将java-client的版本从5.0.0切换到1.2.1,发现问题解决了。

希望这会有所帮助。


0
投票

将以下maven依赖项添加到pom.xml以解决此问题。

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-remote-driver</artifactId>
    <version>3.4.0</version>
</dependency>

0
投票

它可能与java-client jar有问题。

将java-client-7.0.0版本更改为java-client-3.2.0后,我的问题就解决了。


0
投票

我删除了所有的外部库,然后添加了java-client / 7.0.0。它有你需要的任何东西,然后我的项目工作。

https://jar-download.com/artifacts/io.appium/java-client/7.0.0/source-code


-1
投票

添加“selenium-remote-driver”解决了这个问题

© www.soinside.com 2019 - 2024. All rights reserved.