2016-02-13 2 views
4

Как отправить несколько вкладок с помощью Selenium?Отправить несколько нажатий клавиш с селеном

Когда я бегу: выбран

uname = browser.find_element_by_name("text") 
uname.send_keys(Keys.TAB) 

следующий элемент. При выполнении uname.send_keys(Keys.TAB) снова ничего не происходит - на самом деле выбирается следующий элемент из uname -> так что он работает при одном запуске.

Как я могу перепрыгнуть вперед несколько раз - в основном, так как я бы несколько раз нажимал кнопку TAB?

ответ

5

Использование Action Chains:

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() 

Или, так как это Python, вы даже можете сделать:

actions = ActionChains(browser) 
actions.send_keys(Keys.TAB * N) 
actions.perform() 
+0

Это действительно работает - спасибо! – pinas

+0

в моем случае мне нужно было импортировать ** Ключи **: 'from selenium.webdriver.common.action_chains import Keys' – ShinDarth

+1

для меня это' от selenium.webdriver.common.keys import Keys' –

0

Я думаю, вы также можете написать

uname.send_keys(Keys.TAB + Keys.TAB + Keys.TAB + ...) 

Это может быть полезно если у вас есть только 2 или 3 команды для отправки.