java-client icon indicating copy to clipboard operation
java-client copied to clipboard

sendKeys is not working in most of the latest devices but it's working with old Redmi phone.

Open singhrajkr opened this issue 5 years ago • 1 comments

Description

Click is working but sendKeys is not working in most of the latest devices but click and sendkeys it's working with old Redmi phone.

Environment

  • java client build version 7.0.0:
  • Appium server version 1.13.0
  • Node.js version 10.15
  • Mobile platform/version (Android : Motorola Z2 Play Android 8.0.0,Blackberry BB100-1 Android 8.1.0, Redmi Note 3 Android 6.0.1 )
  • emulator: Android 9.0

Details

sendKeys is working with Redmi Note 3 Android 6.0.1 but not with Motorola Z2 Play (Android 8.0.0), Blackberry BB100-1 (Android 8.1.0)

Code To Reproduce Issue [ Good To Have ]

@AndroidFindBy(id = "qa_Env") public MobileElement qaEnv;

@AndroidFindBy(id = "et_first_name")
public MobileElement txtFirstName;

public void selectEnv(){
    qaEnv.click();
}

public void enterFirstName(String fn){
    txtFirstName.sendKeys(fn);
    mobDriver.hideKeyboard();
}

@Test(priority = 1) public void enterFirstName(){ bookingIdentificationPage.selectEnv(); } @Test(priority = 2) public void enterFirstName(){ bookingIdentificationPage.enterFirstName("Raj"); }

Ecxeption stacktraces

org.openqa.selenium.NoSuchElementException: Can't locate an element by this strategy: By.chained({By.id: et_first_name})

at io.appium.java_client.pagefactory.AppiumElementLocator.findElement(AppiumElementLocator.java:126)
at io.appium.java_client.pagefactory.interceptors.InterceptorOfASingleElement.intercept(InterceptorOfASingleElement.java:59)
at io.appium.java_client.android.AndroidElement$$EnhancerByCGLIB$$b598166c.sendKeys(<generated>)
at com.automateavance.pages.booking.BookingIdentificationPage.enterFirstName(BookingIdentificationPage.java:91)
at com.automateavance.tests.booking.BookingIdentificationTest.enterFirstName(BookingIdentificationTest.java:38)
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:108)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:661)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:869)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1193)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
at org.testng.TestRunner.privateRun(TestRunner.java:744)
at org.testng.TestRunner.run(TestRunner.java:602)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:380)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:375)
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:1301)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1226)
at org.testng.TestNG.runSuites(TestNG.java:1144)
at org.testng.TestNG.run(TestNG.java:1115)
at org.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:73)
at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:123)

Caused by: org.openqa.selenium.TimeoutException: Expected condition failed: waiting for io.appium.java_client.pagefactory.AppiumElementLocator$WaitingFunction@13d9cbf5 (tried for 1 second(s) with 500 milliseconds interval) at org.openqa.selenium.support.ui.FluentWait.timeoutException(FluentWait.java:304) at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:272) at io.appium.java_client.pagefactory.AppiumElementLocator.waitFor(AppiumElementLocator.java:99) at io.appium.java_client.pagefactory.AppiumElementLocator.findElement(AppiumElementLocator.java:119) ... 28 more Caused by: org.openqa.selenium.NoSuchElementException: Cannot locate an element using By.chained({By.id: et_first_name}) For documentation on this error, please visit: https://www.seleniumhq.org/exceptions/no_such_element.html Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03' System info: host: 'RAJ', ip: '192.168.2.71', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_191' Driver info: driver.version: AppiumDriver at io.appium.java_client.pagefactory.bys.builder.ByChained.findElement(ByChained.java:74) at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:315) at io.appium.java_client.DefaultGenericMobileDriver.findElement(DefaultGenericMobileDriver.java:58) at io.appium.java_client.AppiumDriver.findElement(AppiumDriver.java:1) at io.appium.java_client.pagefactory.bys.ContentMappedBy.findElement(ContentMappedBy.java:50) at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:315) at io.appium.java_client.DefaultGenericMobileDriver.findElement(DefaultGenericMobileDriver.java:58) at io.appium.java_client.AppiumDriver.findElement(AppiumDriver.java:1) at io.appium.java_client.pagefactory.AppiumElementLocator.lambda$0(AppiumElementLocator.java:120) at io.appium.java_client.pagefactory.AppiumElementLocator$WaitingFunction.apply(AppiumElementLocator.java:172) at io.appium.java_client.pagefactory.AppiumElementLocator$WaitingFunction.apply(AppiumElementLocator.java:1) at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:249) ... 30 more

Link to Appium logs

[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got command of type ACTION [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got command action: find [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Finding 'et_first_name' using 'ID' with the contextId: '' multiple: false [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[INSTANCE=0, RESOURCE_ID=com.pathosethos.avance.android.development:id/et_first_name] [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[INSTANCE=0, RESOURCE_ID=android:id/et_first_name] [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[INSTANCE=0, RESOURCE_ID=et_first_name] [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[DESCRIPTION=et_first_name, INSTANCE=0] [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Failed to locate element. Clearing Accessibility cache and retrying. [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Finding 'et_first_name' using 'ID' with the contextId: '' multiple: false [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[INSTANCE=0, RESOURCE_ID=com.pathosethos.avance.android.development:id/et_first_name] [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[INSTANCE=0, RESOURCE_ID=android:id/et_first_name] [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[INSTANCE=0, RESOURCE_ID=et_first_name] [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[DESCRIPTION=et_first_name, INSTANCE=0] [debug] [AndroidBootstrap] Received command result from bootstrap [debug] [MJSONWP] Matched JSONWP error code 7 to NoSuchElementError [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Returning result: {"status":7,"value":"No element found"} [debug] [W3C (5e479bed)] Encountered internal error running command: NoSuchElementError: An element could not be located on the page using the given search parameters. [debug] [W3C (5e479bed)] at AndroidDriver.findElOrEls (C:\Users\ihate.npm-global\node_modules\appium\node_modules\appium-android-driver\lib\commands\find.js:75:11) [HTTP] <-- POST /wd/hub/session/5e479bed-6b41-4f1a-8f21-a8dfbca173f8/element 404 34210 ms - 397

singhrajkr avatar May 17 '19 11:05 singhrajkr

Any update on above issue, I'm facing similar issue in iOS

reddypramodhadalam avatar Oct 31 '23 07:10 reddypramodhadalam