This site is in read only mode. Please continue to browse, but replying, likes, and other actions are disabled for now.
22 / 28
Apr 2018

I talk about WhatsApp.

I want to realize something like a chat bot but instead of replying to the incoming message the code should save all phone numbers from incoming messages to contacts for e.g

you can not listen private app events like push. only owner of app has access to it.

it is NOT native android app BUT web version :slight_smile: with web you can do much more.

your example does not listen for anything BUT just in loop looking for appearing some web elements and read them.

Yes. Thats actually what i mean. And the same functionlity can be done within a Appium JavaScript Client? Just with the difference instead of just replying the message i want to save the phone numbers of the messages received and add them to the contact list.

@lddd you can. but i can not help you with Appium JavaScript. never used it as client for appium.

Ok thanks a lot.

I am very new to both Java and JavaScript :blush:

Now 2 more questions:

  1. Lets say it´s a Java Client. How to keep such Test running in the background so it´s continuously waiting for new messages and do something with the results? I would have to execute such Client Script every second by cronjob or how is this be done?

  2. Would it be possible to do other actions in the same Appium Test like sending a message? What if both actions would happen to the same time? I guess its not possible for Appium to parallel execute two functions on the same App window running only 1 Test for the same device?

thanks for all the kind help so far. Very nice.

Do you need really do it with phone browser but not with normal on PC?

Sorry? Don´t understand what you mean by normal on PC?

I want to run my “tests” on a headless linux server environment.

but you going to connect device/emulator to some PC anyway

Yes sure Android emulated device, but whats your point?

ok. at least now we have details. i suggest use 2 driver strategy. one driver opens web (no matter on computer or on some emulated device) and looking for messages. another driver does another job with another device/web (depending what exactly you need). i made test like a chat - when 2 apps open on different devices and one sending something, another one respond.

Hey Aleksel.

One automation test for each task sounds like a good idea. 1 for reading messages, 1 for sending messages.

I think browser automation for my case is not possible because on WhatsApp (web.whatsapp.com) you cannot add new contacts. And i want to automatically save phone numbers for all incoming messages containing a specific keyword

For example: A person sends “subscribe”

Now i want to have one Appium Test running in the background of my server doing this. It should permanently scan all incoming messages on the emulated device and add numbers to the contact list.

no test is ONE. in one test open first driver to device 1. and second driver to device 2. and start you steps with checks. but is all depends on your needs. maybe as you said background scan is fine for you.

I think you cannot run the same app with same SIM number on 2 devices at the same time.

I think i know what to do now (at least in theory) i will try some things within the next days and let you know if i have further questions.

thanks for your kind help so far.