java-client
java-client copied to clipboard
sendKeys is not working in most of the latest devices but it's working with old Redmi phone.
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
Any update on above issue, I'm facing similar issue in iOS