How to handle Alert box / Pop up using JAVA for Android?


#1

Hi Team,
I just started to work with appium. it’s been a month I started to work. I’m unable to hable the popup/ alert box in Android device using java. How to identify whether it is popup / alert box and how to handle it ?
if I use
Alert alert = driver.switchto().alert
alert.accept();
I’m getting the error as " not yet implemented ".
Could anyone please help me to come out of this issue

Thanks in Advance,
Pavithra


#2

Hi @PavithraRavichandran,

You might have to inpsect the alert/pop up using Appium Inspector and get details about it. As for example in our app, an alert text comes up as a TextView object. Also, you might have to check if these alerts are displayed under native context. Could you give more details if your app is a native one or hybrid?

Thanks,
Sujata


#3

Hi @sujata_kalluri,

Thanks for your reply, our app is native one and it was my problem I did a mistake in my code that’s y it didn’t work for me, now it’s working or me. So, here in Android don’t we want to switch to alert or is alert is not there in Appium ?

Thanks for your reply on time :smile: @sujata_kalluri


#4

Hi Pavitra,

I am getting the same error "not yet implemented " when trying to accept an alert using
Alert alert = driver.switchto().alert
alert.accept();

Can you please tell me how you handled this scenario?

Thanks,
Rohan


#5

Hello Rohan,

In case you are trying to interact with native app alert, you do not need to switch to alert.
Just find the element on the alert as you find other elements and perform action. It is working fine for me.
e.g. to click on OK button of alert in my AUT:
driver.findElement(By.id(“android:id/ok_button”)).click();

Hope this helps.

Thanks,
Shanky


#6

It is not working for me driver.findElement(By.id(“android:id/ok_button”)).click();
and I am not able to find resource id of that pop up, what to do. please help me out.


#7

Hey @ajai2608 if you can get any other webelement please get that (id or any other) and use driver.findElement(By.()).click();.
It should work.

Thank you,
Pavithra


#8

Some alerts from the native apps can be identified by the inspector, but there are some which are not identified, like I am using selendroid sample app, where after clicking the “Display popup window” button, alert pops up, but can not be identified by uiautomator, any suggestions on this? thanks!


#9

I am having same problem as sunilpatro1985. Pop up alert window in android is not identified by UIAutomatorViewer so I cant validate error msg. I am using Appium, Java, testNG


#10

Can you please be more specific and explain.


#11

Answer is here


#12

@rohan12 we are talking about alerts that are not identified by uiautomator, like system alerts but generates from the application, e.g - you can use selendroid.apk app, click on "Display Popup Window"


#13

Hello @sunilpatro1985, I am having the same problem with alert. Have you found any solution? How to work with this Poopup Window in selendroid app. I added capabilities.setCapability(“autoAcceptAlerts”, true); and used
Alert alert = driver.switchTo().alert();
// alert.accept();
alert.dismiss();
Error message appears
org.openqa.selenium.WebDriverException: Method has not yet been implemented
Thanks!


#14

I’ve managed to figure out a workaround for my popup windows. In my case I had to navigate through contextMenu (android.widget.menu and .item) layout, which spawned AlertDialogLayout.

The trick is that that popup windows gets focused, meaning you can still send keyboard input. I’ve used TAB / DPAD keys to navigate around and ENTER to click on specific View. For example:

// Navigate to 1st item
driver.pressKeyCode(AndroidKeyCode.KEYCODE_DPAD_DOWN);
// Click the current item
driver.pressKeyCode(AndroidKeyCode.ENTER);


#15

How to handle your code with 2 buttons on pop-up
and in AndroidKeyCode.KEYCODE_DPAD_DOWN
what is KEYCODE_DPAD_DOWN ?
Can u plz explain a litl bit


#16

Simple take the path of the alert buttons.If you want to accept then take the xpth for accept .for dismiss take the path of dissmis button and click.Use the below cmd
driver.findElement(By.xpath("")).click.


#17

can you share the code ?


#18

you are testing of native application so you can try this code this is working for me

//click for showing pop up
RecentLocationHomeSelector.click();
WebDriverWait wait = new WebDriverWait(driver, 5);
// get the element of ok button
WebElement positiveButtonElementById=driver.findElement(By.id(“com.fittingnzidd.cherripik.development:id/positiveButton”));
//click on Ok button
positiveButtonElementById.click();


#19

Yeah, I had the same problem and got me crazy until i decided to check if the alert is shown by looking for tittle and button label patterns.
I dont think its the best scenario for this, doesnt look “safe” to build tests around elements with id like “button1”, but i guess its the only option for now.


#20

Hi,

Can Some one please tell me when the app launch it shows the sing in pop for few seconds then it shows the login page.
But in Appium inspector it shows the sing in elements And in device it shows the login page.

How should i handle the sing in alert

When i perform the steps using Appium inspector it doesnt shows the elements for that

Thnks
Chetan