Error: type object 'Keys' has no attribute 'chord'
Asked Answered
B

2

10

I am getting below error while executing selenium code.

Code:

driver.find_element_by_id(PlaylistManagerLocators.Folder_Name).send_keys(Keys.chord(Keys.CONTROL, "a"), "Auto_Folder5763")

Error:

AttributeError: type object 'Keys' has no attribute 'chord'

I have imported all required files.

from selenium.webdriver.common.keys import Keys
from selenium.webdriver import ActionChains


driver.find_element_by_id(PlaylistManagerLocators.Folder_Name).send_keys(Keys.chord(Keys.CONTROL, "a"), "Auto_Folder5763")        
Baugher answered 25/11, 2015 at 11:55 Comment(0)
C
15

There is no function as chord in class selenium.webdriver.common.keys.Keys (Check the docs). You can simply split it into 2 statements.

driver.find_element_by_id(id).send_keys(Keys.CONTROL + "a")
driver.find_element_by_id(id).send_keys("Auto_Folder5763")

Or if you want to simultaneously have the keys pressed then you can try using selenium.webdriver.common.action_chains.ActionChains.

Contort answered 25/11, 2015 at 12:4 Comment(1)
Yes it worked for me with below code:driver.find_element_by_id(PlaylistManagerLocators.Folder_Name).send_keys(Keys.CONTROL,'a') driver.find_element_by_id(PlaylistManagerLocators.Folder_Name).send_keys(Keys.DELETE) driver.find_element_by_id(PlaylistManagerLocators.Folder_Name).send_keys("Auto_Folder5764") driver.find_element_by_id(PlaylistManagerLocators.Folder_Name).send_keys(Keys.ENTER)Baugher
O
0

Just to add an answer for a scenario some readers may encounter (I don't have enough reputation to add this as a comment), if the webform has control keys disabled and you want to replace prefilled text with your own string then this could work:

driver.execute_script("document.getElementById('elementID').value='new value'")

You can also try calling .clear() on the element or simulating a triple click in action chains but an autofill or autoreplace function my still be triggered on .send_keys() in which case directly setting the attribute with javascript may be the best/only option.

Oireachtas answered 28/10, 2022 at 11:59 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.