【问题标题】:Appium - Getting a java.lang.RuntimeException: java.lang.NoSuchMethodException: jdk.proxy2.$Proxy9.proxyClassLookup() at PageFactoryAppium - 在 PageFactory 获取 java.lang.RuntimeException: java.lang.NoSuchMethodException: jdk.proxy2.$Proxy9.proxyClassLookup()
【发布时间】:2021-07-05 07:26:08
【问题描述】:

我在运行 Appium 测试时遇到此异常。 PageFactory 的测试失败,但有以下例外。

My POM:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0`
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.telepathy.test</groupId>
    <artifactId>twitter</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/io.appium/java-client -->
        <dependency>
            <groupId>io.appium</groupId>
            <artifactId>java-client</artifactId>
            <version>7.2.0</version>
        </dependency>
    </dependencies>

</project>

  • 直到昨天,这一切正常,我的机器重新启动,然后开始出现此错误。
  • 已尝试使用最新版本的 Appium (7.5.1)
  • 是否 mvn clean and refresh, update

在这里失败: PageFactory.initElements(new AppiumFieldDecorator(this.driver), this);

java.lang.RuntimeException: java.lang.NoSuchMethodException: 
    jdk.proxy2.$Proxy9.proxyClassLookup()
    at  ​io.appium.java_client.pagefactory.bys.builder.AppiumByBuilder.prepareAnnotationMethods(
ApiumByBuilder.java:84)

【问题讨论】:

    标签: automation appium pom.xml appium-android page-factory


    【解决方案1】:

    检查您使用的 Java 版本。我从 JDK v16 降级到 v15.0.2 并解决了问题。

    【讨论】:

    • 是的,这也对我有用。谢谢!
    【解决方案2】:

    您必须在 java 版本 1.8(这将是最低版本)上重建您的项目,然后您必须插入您的 jrejdk 以获取版本 15 或更低版本,它应该被修复.

    【讨论】:

      【解决方案3】:

      我也遇到了同样的问题,但没有得到任何解决方案。 只需检查您使用的是 AppiumDriver 而不是 AndroidDriver。 &您在页面对象类中使用@FindBy 注释而不是@AndroidFindBy。 也使用PageFactory.initElements(driver, this); 而不是PageFactory.initElements(new AppiumFieldDecorator(driver), this); 这对我有用。它对您有用,请在此处确认。 谢谢

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-11-02
        • 2019-04-25
        • 1970-01-01
        • 2018-05-20
        • 2021-06-30
        • 1970-01-01
        • 2020-08-07
        • 2019-12-26
        相关资源
        最近更新 更多