Send keys not to element but in general selenium

2020-08-13 07:42发布

问题:

Issue:

I want to send_keys(Keys.LEFT_CONTROL + 't') Now to do this I locate any element on the page

elem = self.browser.find_element_by_name('body')
elem.send_keys(Keys.LEFT_CONTROL + 't')

Problem is that each time I want to send above keys I have to locate some element, which actually I'm not interested in.

How can I send keys generally and not to specific object of page, I want something like self.browser.send_keys(Keys.LEFT_CONTROL + 't')? Is it even possible?

回答1:

You are using WebDriver to interact with the actual elements on the page. It will not work.

Try using the Actions

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

actions = ActionChains(driver)
actions.send_keys(Keys.LEFT_CONTROL + 't')
actions.perform()

See the documentation: http://selenium-python.readthedocs.io/api.html?highlight=send_keys#module-selenium.webdriver.common.action_chains