Send Multiple Tab Key Presses With Selenium
Solution 1:
Use Action Chains:
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
N = 5# number of times you want to press TAB
actions = ActionChains(browser)
for _ inrange(N):
actions = actions.send_keys(Keys.TAB)
actions.perform()
Or, since this is Python, you can even do:
actions = ActionChains(browser)
actions.send_keys(Keys.TAB * N)
actions.perform()
Solution 2:
I think you can also write
uname.send_keys(Keys.TAB + Keys.TAB + Keys.TAB + ... )
It may be useful if you have only two or three commands to send.
Solution 3:
As the OP states: "actually the next element from uname
is selected".
After the first <TAB>
key you have moved off the element, so no further <TAB>
s will be recognized by that element. You need to locate the parent element and send keys to it.
Solution 4:
sendkeys(Keys.Tab, Keys.Tab, Keys.Tab)
is working fine.
Solution 5:
This syntax saved me:
ActionChains(driver).send_keys(Keys.TAB * 2).perform()
I tried using this from the accepted answer:
actions = ActionChains(browser)
actions.send_keys(Keys.TAB * 2)
actions.perform()
But since I wanted to later use three TABs in the same script, I ran into problems. The thing is that actions.send_keys(Keys.TAB * 3)
simply adds to the previous lines in actions
in the same script. So after the second time I use this line, instead of desired three TAB keys pressed I get five (i.e. 2 + 3). Furthermore, ActionChains.reset_actions()
does not seem to work.
Post a Comment for "Send Multiple Tab Key Presses With Selenium"