Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Send keys control + click in Selenium with Python bindings

I need to open link in new tab using Selenium.

So is it possible to perform ctrl+click on element in Selenium to open it in new tab?

like image 979
micgeronimo Avatar asked Jan 05 '15 08:01

micgeronimo


People also ask

How do you click enter after sendKeys in Selenium Python?

We can type Enter/Return key in Selenium. We shall use the sendKeys method and pass Keys. ENTER as an argument to the method.

Can Selenium Webdriver press keyboard keys?

When a user presses single or multiple keys, keyboard events generate. Selenium provides various ways to automate these Keyboard Events, a few of which are: Automate keyboard events using the sendKeys() method of WebElement class.

How do you press Ctrl in Selenium Python?

In order to carry out this action, we need to first press the ctrl key downwards and simultaneously press C key. These two steps can be automated by key_down() method and can only be used along with Shift, Alt and Control keys.


1 Answers

Use an ActionChain with key_down to press the control key, and key_up to release it:

import time from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.keys import Keys  driver = webdriver.Chrome()  driver.get('http://google.com') element = driver.find_element_by_link_text('About')  ActionChains(driver) \     .key_down(Keys.CONTROL) \     .click(element) \     .key_up(Keys.CONTROL) \     .perform()  time.sleep(10) # Pause to allow you to inspect the browser.  driver.quit() 
like image 152
Louis Avatar answered Sep 21 '22 06:09

Louis