Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Need support]: Need Support to resolve this issue. #63

Open
imsarathh opened this issue Nov 15, 2024 · 3 comments
Open

[Need support]: Need Support to resolve this issue. #63

imsarathh opened this issue Nov 15, 2024 · 3 comments
Assignees
Labels
help wanted Extra attention is needed

Comments

@imsarathh
Copy link

Describe the problem

i am trying Healenium latest version i download and using but getting below error method not implemented

i am using all latest versions but facing this issue please help to fix

please share me proper version to use:

selenium version,
java version,
Appium version,
uiautomater2 driver version,

Healenium Backend version

healenium-2.1.2

Healenium Appium version

1.5.11

Selenium version

4.26.0

Platform

java 17

Logs appeared during using Healenium

System info: host: 'sarathpc', ip: '192.168.29.163', os.name: 'Windows 11', os.arch: 'amd64', os.version: '10.0', java.version: '17.0.11'
Driver info: io.appium.java_client.android.AndroidDriver
Command: [c52ad466-0efb-4813-878f-d9e042cc84ff, executeScript {script=var items = [];var a = arguments[0];while (a != document) {  var child = a;  var i=0; while(child=child.previousElementSibling) i++;  var node = {tag:null,id:null,index:null,classes:[],other:{},innerText:""};  if (a.tagName !== undefined) {    node.tag = a.tagName.toLowerCase();  }  node.id = a.id;  node.index = i;  node.innerText = a.innerText;  if (a.hasAttribute("class")) {         node.classes = a.attributes.class.value.split(' ');  }  for (index = 0; index < a.attributes.length; ++index) {      var attrName = a.attributes[index].name;      if (["id","class"].indexOf(attrName) == -1){                   node.other[attrName] = a.attributes[index].value;      }  };  items.unshift(node);  a = a.parentNode;}return JSON.stringify(items);, args=[{ELEMENT=00000000-0000-0851-ffff-ffff00000006, element-6066-11e4-a52e-4f735466cecf=00000000-0000-0851-ffff-ffff00000006}]}]
Capabilities {appium:app: D:\apk\Changed.apk, appium:appActivity: com.example.sarathc2.MainAc..., appium:appPackage: com.example.sarathc2, appium:automationName: UiAutomator2, appium:databaseEnabled: false, appium:desired: {app: D:\apk\Changed.apk, appActivity: com.example.sarathc2.MainAc..., appPackage: com.example.sarathc2, automationName: UiAutomator2, deviceName: 4a, fullReset: true, platformName: ANDROID}, appium:deviceApiLevel: 30, appium:deviceManufacturer: unknown, appium:deviceModel: Android SDK built for x86, appium:deviceName: emulator-5554, appium:deviceScreenDensity: 440, appium:deviceScreenSize: 1080x2340, appium:deviceUDID: emulator-5554, appium:fullReset: true, appium:javascriptEnabled: true, appium:locationContextEnabled: false, appium:networkConnectionEnabled: true, appium:pixelRatio: 2.75, appium:platformName: Android, appium:platformVersion: 11, appium:statBarHeight: 66, appium:takesScreenshot: true, appium:viewportRect: {height: 2274, left: 0, top: 66, width: 1080}, appium:warnings: {}, appium:webStorageEnabled: false, platformName: ANDROID, se:bidiEnabled: false, se:cdpEnabled: false}
Session ID: c52ad466-0efb-4813-878f-d9e042cc84ff
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)      
        at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
        at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:217)
        at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:169)
        at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:604)
        at org.openqa.selenium.remote.RemoteWebDriver.executeScript(RemoteWebDriver.java:503)
        at com.epam.healenium.service.NodeService.getNodePath(NodeService.java:42)
        at com.epam.healenium.SelfHealingEngine.lambda$getNodePath$0(SelfHealingEngine.java:121)
        at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
        at java.base/java.util.Collections$2.tryAdvance(Collections.java:4853)
        at java.base/java.util.Collections$2.forEachRemaining(Collections.java:4861)
        at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
        at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
        at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
        at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
        at com.epam.healenium.SelfHealingEngine.getNodePath(SelfHealingEngine.java:122)
        at com.epam.healenium.SelfHealingEngine.saveElements(SelfHealingEngine.java:107)
        at com.epam.healenium.processor.FindElementProcessor.execute(FindElementProcessor.java:25)
        at com.epam.healenium.processor.BaseProcessor.process(BaseProcessor.java:42)
        at com.epam.healenium.handlers.proxy.BaseHandler.findElement(BaseHandler.java:60)
        at com.epam.healenium.handlers.proxy.SelfHealingProxyInvocationHandler.invoke(SelfHealingProxyInvocationHandler.java:39)
        at jdk.proxy2/jdk.proxy2.$Proxy5.findElement(Unknown Source)
        at test.sarath.heal.MobileHighAndroid.main(MobileHighAndroid.java:34)
[main] WARN healenium - [Save Elements] Error during save elements: [00000000-0000-0851-ffff-ffff00000007]. Message: {"value":{"error":"unknown method","message":"Method is not implemented","stacktrace":"NotImplementedError: Method is not implemented\n    at AndroidUiautomator2Driver.execute (C:\\Users\\sarath\\node_modules\\appium-uiautomator2-driver\\node_modules\\appium-android-driver\\lib\\commands\\execute.js:125:11)\n    at runCommandPromise (C:\\Users\\sarath\\node_modules\\appium-uiautomator2-driver\\node_modules\\@appium\\base-driver\\lib\\basedriver\\driver.ts:115:20)\n    at C:\\Users\\sarath\\node_modules\\appium-uiautomator2-driver\\node_modules\\async-lock\\lib\\index.js:171:12\n    at AsyncLock._promiseTry (C:\\Users\\sarath\\node_modules\\appium-uiautomator2-driver\\node_modules\\async-lock\\lib\\index.js:306:31)\n    at exec (C:\\Users\\sarath\\node_modules\\appium-uiautomator2-driver\\node_modules\\async-lock\\lib\\index.js:170:9)\n    at AsyncLock.acquire (C:\\Users\\sarath\\node_modules\\appium-uiautomator2-driver\\node_modules\\async-lock\\lib\\index.js:189:3)\n    at AndroidUiautomator2Driver.executeCommand (C:\\Users\\sarath\\node_modules\\appium-uiautomator2-driver\\node_modules\\@appium\\base-driver\\lib\\basedriver\\driver.ts:159:39)\n    at processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at defaultBehavior (D:\\softwares\\node-v18.20.5-win-x64\\node_modules\\appium\\lib\\appium.js:1135:14)\n    at AppiumDriver.executeWrappedCommand (D:\\softwares\\node-v18.20.5-win-x64\\node_modules\\appium\\lib\\appium.js:1241:16)\n    at AppiumDriver.executeCommand (D:\\softwares\\node-v18.20.5-win-x64\\node_modules\\appium\\lib\\appium.js:1147:17)\n    at asyncHandler (D:\\softwares\\node-v18.20.5-win-x64\\node_modules\\appium\\node_modules\\@appium\\base-driver\\lib\\protocol\\protocol.js:387:19)"}}
[main] WARN healenium - [Save Elements] Error during save elements: [00000000-0000-0851-ffff-ffff00000007]. Message: {"value":{"error":"unknown method","message":"Method is not implemented","stacktrace":"NotImplementedError: Method is not implemented\n    at AndroidUiautomator2Driver.execute (C:\\Users\\sarath\\node_modules\\appium-uiautomator2-driver\\node_modules\\appium-android-driver\\lib\\commands\\execute.js:125:11)\n    at runCommandPromise (C:\\Users\\sarath\\node_modules\\appium-uiautomator2-driver\\node_modules\\@appium\\base-driver\\lib\\basedriver\\driver.ts:115:20)\n    at C:\\Users\\sarath\\node_modules\\appium-uiautomator2-driver\\node_modules\\async-lock\\lib\\index.js:171:12\n    at AsyncLock._promiseTry (C:\\Users\\sarath\\node_modules\\appium-uiautomator2-driver\\node_modules\\async-lock\\lib\\index.js:306:31)\n    at exec (C:\\Users\\sarath\\node_modules\\appium-uiautomator2-driver\\node_modules\\async-lock\\lib\\index.js:170:9)\n    at AsyncLock.acquire (C:\\Users\\sarath\\node_modules\\appium-uiautomator2-driver\\node_modules\\async-lock\\lib\\index.js:189:3)\n    at AndroidUiautomator2Driver.executeCommand (C:\\Users\\sarath\\node_modules\\appium-uiautomator2-driver\\node_modules\\@appium\\base-driver\\lib\\basedriver\\driver.ts:159:39)\n    at processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at defaultBehavior (D:\\softwares\\node-v18.20.5-win-x64\\node_modules\\appium\\lib\\appium.js:1135:14)\n    at AppiumDriver.executeWrappedCommand (D:\\softwares\\node-v18.20.5-win-x64\\node_modules\\appium\\lib\\appium.js:1241:16)\n    at AppiumDriver.executeCommand (D:\\softwares\\node-v18.20.5-win-x64\\node_modules\\appium\\lib\\appium.js:1147:17)\n    at asyncHandler (D:\\softwares\\node-v18.20.5-win-x64\\node_modules\\appium\\node_modules\\@appium\\base-driver\\lib\\protocol\\protocol.js:387:19)"}}
Command duration or timeout: 28 milliseconds

Additional context

i am using with selenium appium for andorid device sealheal
my appium version is 2.12.1
i configured selenium grid and added android device as node, i can see my automation script is working fine but locators not saving into the healenium-2.1.2 server
healenium-2 1 2 no locator saved

@imsarathh imsarathh added the help wanted Extra attention is needed label Nov 15, 2024
@ryfeather
Copy link

ryfeather commented Nov 15, 2024

Based on the error message, it appears that the issue is with the executeScript method not being implemented in the AndroidUiautomator2Driver class.

Here are some potential solutions:
Since you're already using the latest version of Healenium (2.1.2), here are a few other potential solutions to try:

Update Appium to the latest version (2.22.3)
Verify that your Selenium version (4.26.0) is compatible with Appium
Check that your Android driver version is compatible with Appium

@imsarathh
Copy link
Author

imsarathh commented Nov 15, 2024

i already have latest version of appium(2.12.1) and uiautomator 2(3.8.3) selenium script is working fine i can see its performing all actions in mobile @ryfeather but its not saving any elements into healenium db

@sheikhjebran
Copy link

@ryfeather please help on this issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

4 participants