I am searching for year from drop down, and it is present at the end of that drop down but its not visible whenever I open that drop down. So I used function that you have mentioned above and it got worked for me very well.
Hi @Aleksei
i am facing java.lang.NullPointerException :
This is my code
public WebElement scrollToAnElementByText(AndroidDriver driver1, String text)
{
return Adriver.findElement(MobileBy.AndroidUIAutomator
(ânew UiScrollable(new UiSelector())â +""
+ â.scrollIntoView(new UiSelector().text(â" + text + ââ));"));
}
in the test page
Pray4MeRequestPage p1 = new Pray4MeRequestPage(driver1);
p1.scrollToAnElementByText(driver1, âSubmitâ);
in the find element page, in this page i have declared & initialised Android driver as Adriver
public WebElement scrollToAnElementByText(AndroidDriver Adriver, String text)
{
return Adriver.findElement(MobileBy.AndroidUIAutomator
(ânew UiScrollable(new UiSelector())â +""
+ â.scrollIntoView(new UiSelector().text(â" + text + ââ));"));
}
i am using POM frame work,
there is resource id, i have only text to find element, initially when the page opens Submit button will be hidden i need to scroll to submit button.
Can you please help me
public static void scrollToText(AndroidDriver<MobileElement> driver, String text) {
MobileElement el = (MobileElement) driver.findElementByAndroidUIAutomator("new UiScrollable("
+ "new UiSelector().scrollable(true)).scrollIntoView(" + "new UiSelector().text(\"" + text + "\"));");
}
public static void scrollToId(AndroidDriver<MobileElement> driver, String id) {
MobileElement el = (MobileElement) driver.findElementByAndroidUIAutomator(
"new UiScrollable(" + "new UiSelector().scrollable(true)).scrollIntoView("
+ "new UiSelector().resourceIdMatches(\"" + id + "\"));");
}```
Good day, I tried also the code you have provided from the previous comment and wondering how I can select/click the element not visible on the panel of my mobile android device. Provided below are my code and new UiSelector is scrolling and working on some app but for no apparent reason it does not works on the app our dev is currently creating. Details are given below.
Kindly help as I am still trying to learn Appium. Thank you and good day.
appium --1.16.0
java version â1.8.0_231â
code:
public static void openKYC() throws Exception {
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability("deviceName", "CAM-L21");
cap.setCapability("udid", "LHTDU17601000834");
cap.setCapability("platformName", "Android");
cap.setCapability("platformVersion", "6.0");
cap.setCapability("automationName", "UiAutomator1");
cap.setCapability("appPackage", "com.cimb.ekyc");
cap.setCapability("appActivity", "com.cimb.ekyc.MainActivity");
URL url = new URL("http://127.0.0.1:4723/wd/hub");
driver = new AndroidDriver<MobileElement>(url, cap);
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
System.out.println("KYC Application Test Started...");
driver.findElement(By.className("android.widget.Button")).click();
driver.findElementByXPath("//android.view.View[@text='E-i navigation icon EcoSave Savings Account-i Online, paperless, and environmentally friendly']").click();
((FindsByAndroidUIAutomator<MobileElement>) driver).findElementByAndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\"Green Environmental Activities\").instance(0))");
}
}
On Appium server: there is an error (UiObjectNotFoundException) as per screenshot below:
wow. this is web view! which may work tricky. better switch context to web and use âclick()â on element as with usual web. do not use uiSelector. imagine you are automating web.
After you switch to webView you will see ALL screen elements even outside visible area.
Previously, I was automating on our angular web using a Protractor but our team creates another app using PWA for a mobile wherein the customer can select accessing thru web (automation completes) and thru an app (PWA, ongoing automation) in mobile but experiencing problem scrolling down to certain elements.
Can you help elaborate further as I am not getting you. You mean I go use Protractor again? or should I use Aappium for the mobile app testingâŚKindly help. thank you, Aleksei.
I tried putting the code as shown below, I paste the code you have provided below after I click the open account and loads to a web view as shown belowâŚDo I need to change something here on the given code? Thanks