Appium:java.lang.NoSuchMethodError: com.google.gson.GsonBuilder.setLenient()Lcom/google/gson/GsonBuilder;
Appium:java.lang.NoSuchMethodError: com.google.gson.GsonBuilder.setLenient()Lcom/google/gson/GsonBuilder;
我在尝试 运行 appium 测试时遇到上述错误。
我使用的罐子是:
我的lib文件夹中的jar:
我的应用程序在
之后出现
driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), caps);
但是下一步,
driver.wait(5000);
失败,异常:
我是appium的初学者,因此下载了上面提到的jar文件查看依赖关系。我已经尝试了 jar 版本号的多种组合,但它仍然给出了异常。你能告诉我如何进行吗?我使用 Ant 构建项目。
我也使用过 java 客户端 6.1.0,但使用它甚至无法启动我的应用程序。我也使用了最新的 gson jar,它是 2.8.5
我的build.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<property name="build.dir" location="bin">
</property>
<property name="src.dir" location="src">
</property>
<property name="docs.dir" location="docs">
</property>
<property name="dist.dir" location="dist">
</property>
<property name="lib.dir" location="lib">
</property>
<property name="resources.dir" location="resources">
</property>
<path id="build.classpath">
<fileset dir="${lib.dir}" includes = "gson-2.8.5.jar">
<include name="*.jar"/>
</fileset>
</path>
<pathconvert property="classpathProp" refid="build.classpath" />
<echo>Classpath is ${classpathProp}</echo>
<target name="init">
<mkdir dir="bin"/>
<mkdir dir="dist"/>
<mkdir dir="docs"/>
</target>
<target name="clean">
<delete dir="${build.dir}"/>
<delete dir="${docs.dir}"/>
<delete dir="${dist.dir}"/>
</target>
<target name="compile" depends="clean,init">
<javac srcdir="${src.dir}" destdir="${build.dir}" classpathref="build.classpath" includeantruntime="false">
</javac>
</target>
<target name="main" depends="compile">
<java classname="core.Trigger" classpath="${build.dir}" classpathref="build.classpath"></java>
</target>
- 你能更新 gson 库即 gson jar 到最新版本吗
我也没见过appium提供的direct wait方法。尝试在开始时使用隐式等待。
driver.manage().timeouts().implicitlywait(10 timeunit.seconds)
还要提到 class 类型的 android 驱动程序
driver = new AndroidDriver[MobileElement](new URL("http://127.0.0.1:4723/wd/hub"), caps);
或
driver = new AndroidDriver[WebElement](new URL("http://127.0.0.1:4723/wd/hub"), caps);
- 还要确保您的 appium 服务器 运行 在正确的端口上。
注意 - 使用 [] 而不是更大和更小的括号,因为它们不会在页面上呈现。
对我来说,问题是由于使用了父 class Webdriver 而不是 Android 驱动程序。我想让它同时适用于应用程序和桌面。我以前见过这样的用法,但对我来说没用。
我在尝试 运行 appium 测试时遇到上述错误。 我使用的罐子是:
我的lib文件夹中的jar:
我的应用程序在
之后出现driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), caps);
但是下一步,
driver.wait(5000);
失败,异常:
我是appium的初学者,因此下载了上面提到的jar文件查看依赖关系。我已经尝试了 jar 版本号的多种组合,但它仍然给出了异常。你能告诉我如何进行吗?我使用 Ant 构建项目。
我也使用过 java 客户端 6.1.0,但使用它甚至无法启动我的应用程序。我也使用了最新的 gson jar,它是 2.8.5
我的build.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<property name="build.dir" location="bin">
</property>
<property name="src.dir" location="src">
</property>
<property name="docs.dir" location="docs">
</property>
<property name="dist.dir" location="dist">
</property>
<property name="lib.dir" location="lib">
</property>
<property name="resources.dir" location="resources">
</property>
<path id="build.classpath">
<fileset dir="${lib.dir}" includes = "gson-2.8.5.jar">
<include name="*.jar"/>
</fileset>
</path>
<pathconvert property="classpathProp" refid="build.classpath" />
<echo>Classpath is ${classpathProp}</echo>
<target name="init">
<mkdir dir="bin"/>
<mkdir dir="dist"/>
<mkdir dir="docs"/>
</target>
<target name="clean">
<delete dir="${build.dir}"/>
<delete dir="${docs.dir}"/>
<delete dir="${dist.dir}"/>
</target>
<target name="compile" depends="clean,init">
<javac srcdir="${src.dir}" destdir="${build.dir}" classpathref="build.classpath" includeantruntime="false">
</javac>
</target>
<target name="main" depends="compile">
<java classname="core.Trigger" classpath="${build.dir}" classpathref="build.classpath"></java>
</target>
- 你能更新 gson 库即 gson jar 到最新版本吗
我也没见过appium提供的direct wait方法。尝试在开始时使用隐式等待。
driver.manage().timeouts().implicitlywait(10 timeunit.seconds)
还要提到 class 类型的 android 驱动程序
driver = new AndroidDriver[MobileElement](new URL("http://127.0.0.1:4723/wd/hub"), caps);
或
driver = new AndroidDriver[WebElement](new URL("http://127.0.0.1:4723/wd/hub"), caps);
- 还要确保您的 appium 服务器 运行 在正确的端口上。
注意 - 使用 [] 而不是更大和更小的括号,因为它们不会在页面上呈现。
对我来说,问题是由于使用了父 class Webdriver 而不是 Android 驱动程序。我想让它同时适用于应用程序和桌面。我以前见过这样的用法,但对我来说没用。