How can I send multiple tabs with Selenium?
When I run:
uname = browser.find_element_by_name("text")
uname.send_keys(Keys.TAB)
the next element is selected. When executing uname.send_keys(Keys.TAB)
again nothing happens - actually the next element from uname
is selected → so it is the same as when running it once.
How can I jump forward multiple times - basically as I would press TAB manually multiple times?
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 _ in range(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()
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With