Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to access elements on external website using Espresso

Using espresso, we click a Login button which launches an external website (Chrome Custom Tab) where you can login and then it redirects back to our android application.

Is there a way in Espresso to:
1) Verify the correct URL is being launched
2) Access the elements on the website so that I can enter the login information and continue to login

enter image description here

When I try viewing it in the Espresso Launch Navigator, nothing shows up for the page, and if I try to record, it doesn't pick up on me entering anything on the page.

This is what I have so far (it is in Kotlin (not Java)): enter image description here

And here is the error that gets displayed: enter image description here

It launches my application, select the login button, opens the website but then it isn't able to access the elements.

I also tried:

enter image description here

Update: This is using Chrome Custom Tabs (not a Web View) so Espresso Web is not working.

like image 605
reutsey Avatar asked Jul 28 '17 17:07

reutsey


1 Answers

I was able to resolve this issue using both Espresso and UI Automator. You are able to combine the two. The selection of the login button I used Espresso (and the rest of the app, I will use Espresso). To handle the Chrome Custom tab for logging in, I used UIAutomator:

enter image description here

like image 180
reutsey Avatar answered Oct 21 '22 02:10

reutsey