我正在尝试使用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版本。请询问您需要的任何细节,
我在这里被封锁了很长一段时间,对此的帮助将不胜感激,
谢谢,拉胡尔
在创建驱动程序对象之前尝试以下代码。 System.setProperty("webdriver.http.factory", "apache");
当我按照以下步骤操作时,问题就解决了
以前我添加了不同版本的java客户端jar;我之前没有添加任何gson jar。也许这些变化解决了我的问题。 (虽然我不确定)
此致,拉胡尔
这个问题今天发生了。
我刚刚将java-client的版本从5.0.0切换到1.2.1,发现问题解决了。
希望这会有所帮助。
将以下maven依赖项添加到pom.xml以解决此问题。
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-remote-driver</artifactId>
<version>3.4.0</version>
</dependency>
它可能与java-client jar有问题。
将java-client-7.0.0版本更改为java-client-3.2.0后,我的问题就解决了。
我删除了所有的外部库,然后添加了java-client / 7.0.0。它有你需要的任何东西,然后我的项目工作。
https://jar-download.com/artifacts/io.appium/java-client/7.0.0/source-code
添加“selenium-remote-driver”解决了这个问题