Selenium Python ActionChain preform method

Question:

I need selenium and python to do the key combo Shift + Enter, so that it inserts a new line without sending a message (n sends the message), and with this code it doesn’t produce an error, but it also doesn’t create a new line. message_box variable is already defined and the messages there do show up.

Code trials:

action = ActionChains(driver)
message_box.send_keys("test1")
action.key_down(Keys.SHIFT)
action.send_keys(Keys.RETURN)
action.key_up(Keys.SHIFT)
message_box.send_keys("test2")
Asked By: BlueBanana45

||

Answers:

You can chain the events in an ActionChains() and perform them in a chain using either of the following solutions:

  • Using SHIFT and RETURN:

    ActionChains(driver).move_to_element(message_box).send_keys("test1").key_down(Keys.SHIFT).send_keys(Keys.RETURN).key_up(Keys.SHIFT).send_keys("test2").perform()
    
  • Using SHIFT and ENTER:

    ActionChains(driver).move_to_element(message_box).send_keys("test1").key_down(Keys.SHIFT).send_keys(Keys.ENTER).key_up(Keys.SHIFT).send_keys("test2").perform()
    

Note : You have to add the following imports :

from selenium.webdriver.common.keys import Keys
Answered By: undetected Selenium