How to line break in WhatsApp with Selenium when sending a message?

Viewed 3586

Message sending function:

template = {
    'other': 
             'Text.'
             'More Text.'
             'Much more text.'
}


def send_message(driver, answer):
    driver.find_element_by_xpath('XPATH').click()
    action = ActionChains(driver)
    action.send_keys(answer)
    action.send_keys(Keys.RETURN)
    action.perform()

Depending on the received message from the template, the necessary answer is taken and passed to send_message() as the answer argument. If you send the message as is, then in WhatsApp it comes in one line:

Text.More text.Much more text.

If you add \n then each line will be sent with a new message, i.e. like that:

screenshot of sent message

How can I send text with line breaks in one message?

3 Answers

Solved this

def send_message(driver, answer):
    driver.find_element_by_xpath('XPATH').click()
    for line in answer.split('\n'):
        ActionChains(driver).send_keys(line).perform()
        ActionChains(driver).key_down(Keys.SHIFT).key_down(Keys.ENTER).key_up(Keys.SHIFT).key_up(Keys.ENTER).perform()
    ActionChains(driver).send_keys(Keys.RETURN).perform()

You can use the following code to add the line. It is working fine and I am using it in my ERP.

smsContain = "*Greetings from  " + cname + " ,%0a %0a M/s. " + txtName.Text + " %0a %0a

This worked for me. Basically pressing SHIFT+ENTER every time a new line appears.

MESSAGE = """This is a sample message.
It accepts one new line.


also accepts multiple new lines as well.
"""

for one_line in MESSAGE.split("\n"):
    driver.find_element('').send_keys(one_line)
    driver.find_element('').send_keys(Keys.SHIFT + Keys.ENTER)
driver.find_element('').send_keys(Keys.ENTER)
Related