首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QAF 3.0.1b |注册QAFExtendedWebElement监听器问题

QAF 3.0.1b |注册QAFExtendedWebElement监听器问题
EN

Stack Overflow用户
提问于 2021-09-25 15:40:45
回答 1查看 92关注 0票数 0

监听程序在运行期间未注册。获取下面的错误

代码语言:javascript
复制
[QAFExtendedWebElement] - Unable to register listener class com.proj.listener.proj_qaf_listener
java.lang.ClassNotFoundException: com.proj.listener.proj_qaf_listener
 at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:264)
        at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebElement.registerListeners(QAFExtendedWebElement.java:1271)
        at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebElement.<init>(QAFExtendedWebElement.java:113)
        at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebElement$JsonConvertor.newRemoteWebElement(QAFExtendedWebElement.java:425)
        at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebElement$JsonConvertor.newRemoteWebElement(QAFExtendedWebElement.java:1)
        at org.openqa.selenium.remote.internal.JsonToWebElementConverter.apply(JsonToWebElementConverter.java:55)
        at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebElement$JsonConvertor.apply(QAFExtendedWebElement.java:410)
        at com.google.common.collect.Iterators$6.transform(Iterators.java:788)
        at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:47)
        at com.google.common.collect.Iterators.addAll(Iterators.java:358)
        at com.google.common.collect.Lists.newArrayList(Lists.java:147)
        at com.google.common.collect.Lists.newArrayList(Lists.java:133)
        at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebElement$JsonConvertor.apply(QAFExtendedWebElement.java:407)
        at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:561)
        at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver.execute(QAFExtendedWebDriver.java:236)
        at org.openqa.selenium.remote.RemoteWebDriver.findElements(RemoteWebDriver.java:353)
        at org.openqa.selenium.remote.RemoteWebDriver.findElementsByName(RemoteWebDriver.java:408)
        at org.openqa.selenium.By$ByName.findElements(By.java:276)
        at com.qmetry.qaf.automation.ui.webdriver.ByAny.findElements(ByAny.java:65)
        at com.qmetry.qaf.automation.ui.webdriver.ByAny.findElement(ByAny.java:49)
        at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:315)
        at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver.findElement(QAFExtendedWebDriver.java:172)
        at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver.findElement(QAFExtendedWebDriver.java:1)
        at org.openqa.selenium.support.ui.ExpectedConditions$6.apply(ExpectedConditions.java:182)
        at org.openqa.selenium.support.ui.ExpectedConditions$6.apply(ExpectedConditions.java:179)
        at com.qmetry.qaf.automation.ui.util.DynamicWait.until(DynamicWait.java:147)
        at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver.load(QAFExtendedWebDriver.java:216)
        at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebElement.load(QAFExtendedWebElement.java:302)
        at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebElement.execute(QAFExtendedWebElement.java:249)
        at org.openqa.selenium.remote.RemoteWebElement.sendKeys(RemoteWebElement.java:106)
        at com.qmetry.qaf.automation.step.CommonStep.sendKeys_aroundBody6(CommonStep.java:114)
        at com.qmetry.qaf.automation.step.CommonStep$AjcClosure7.run(CommonStep.java:1)
        at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:167)
        at com.qmetry.qaf.automation.step.JavaStepReporter$MockJavaStep.doExecute(JavaStepReporter.java:130)
        at com.qmetry.qaf.automation.step.BaseTestStep.execute(BaseTestStep.java:149)
        at com.qmetry.qaf.automation.step.JavaStepReporter.javaTestStep(JavaStepReporter.java:80)
        at com.qmetry.qaf.automation.step.CommonStep.sendKeys(CommonStep.java:113)
        at com.rt.steps.rt_globals.iFillInTo_aroundBody86(rt_globals.java:691)
        at com.rt.steps.rt_globals$AjcClosure87.run(rt_globals.java:1)
        at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:167)
        at com.qmetry.qaf.automation.step.JavaStepReporter.javaTestStep(JavaStepReporter.java:93)
        at com.rt.steps.rt_globals.iFillInTo(rt_globals.java:688)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at com.qmetry.qaf.automation.step.JavaStep.doExecute(JavaStep.java:150)
        at com.qmetry.qaf.automation.step.BaseTestStep.execute(BaseTestStep.java:149)
        at com.qmetry.qaf.automation.step.StringTestStep.execute(StringTestStep.java:127)
        at com.qmetry.qaf.automation.step.client.Scenario.execute(Scenario.java:174)
        at com.qmetry.qaf.automation.step.client.Scenario.scenario(Scenario.java:237)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:104)
        at org.testng.internal.Invoker.invokeMethod(Invoker.java:645)
        at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:851)
        at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1177)
        at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129)
        at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112)
        at org.testng.TestRunner.privateRun(TestRunner.java:756)
        at org.testng.TestRunner.run(TestRunner.java:610)
        at org.testng.SuiteRunner.runTest(SuiteRunner.java:387)
        at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:382)
        at org.testng.SuiteRunner.privateRun(SuiteRunner.java:340)
        at org.testng.SuiteRunner.run(SuiteRunner.java:289)
        at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
        at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
        at org.testng.TestNG.runSuitesSequentially(TestNG.java:1293)
        at org.testng.TestNG.runSuitesLocally(TestNG.java:1218)
        at org.testng.TestNG.runSuites(TestNG.java:1133)
        at org.testng.TestNG.run(TestNG.java:1104)
        at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:122)
        at org.apache.maven.surefire.testng.TestNGXmlTestSuite.execute(TestNGXmlTestSuite.java:92)
        at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:101)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164)
        at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110)
        at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:172)
        at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:104)
        at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:70)

我已经在com.proj.listener中添加了一个新的QAFExtendedWebElement监听器

我在application.properties中添加了: we.command.listeners=com.proj.listener.proj_qaf_listener

监听器文件: proj_qaf_listner.java

代码语言:javascript
复制
package com.proj.listener;

import static com.qmetry.qaf.automation.core.ConfigurationManager.getBundle;
import static com.qmetry.qaf.automation.step.CommonStep.*;
import static com.qmetry.qaf.automation.util.Validator.assertThat;
// QAF Listner:
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.impl.LogFactoryImpl;
import org.openqa.selenium.remote.DriverCommand;

import com.qmetry.qaf.automation.ui.webdriver.CommandTracker;
import com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebElement;
import com.qmetry.qaf.automation.ui.webdriver.QAFWebElementCommandListener;
import com.qmetry.qaf.automation.ui.webdriver.QAFWebElementCommandAdapter;

public class proj_qaf_listner extends QAFWebElementCommandAdapter {

//   Log logger = LogFactory.getLog(getClass());


  public void onFailure(
    QAFExtendedWebElement element,
    CommandTracker commandTracker
  ) {
    System.out.println("=====<<<<<<< FALLBACK element >>>>>>>------>  \n" + element);
    System.out.println("=====<<<<<<< FALLBACK commandTracker >>>>>>>------> \n " + commandTracker);
    //By newBy = <do needful>;
    // element.setBy(newBy);
    // commandTracker.setRetry(true);
  }
  
}

已参考以下链接:

https://qmetry.github.io/qaf/latest/qaf_listeners.html

EN

回答 1

Stack Overflow用户

发布于 2021-09-25 15:49:40

已确定问题..

给定的注册文件名错误:

we.command.listeners=com.proj.listener.proj_qaf_listener

但是文件名缺少"e“。监听器文件: proj_qaf_listner.java

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69327676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档