How do I open new tab or window from selenium python

I am attempting to open a new tab OR a new window in a browser using selenium for python.  It is of little importance if a new tab or new window is opened, it is only important that a second instance of the browser is opened.


I have tried several different methods already and none have succeeded.

1. Switching to a window that does not exist with hopes that it would then open a new window upon failure to locate said window:
            
driver.switch_to_window(None)

Open in new window


2. Iterating through open windows (although there is currently only one)
            for handle in driver.window_handles:
                  
driver.switch_to_window(handle)

Open in new window


3. Attempting to simulate a keyboard key press:

      
from selenium.webdriver.common.keys import Keys
		driver.send_keys(Keys.CONTROL + 'T')

Open in new window


      The problem with this one in particular was that it does not seem possible to send keys directly to the browser, only to a specific element like this:

	driver.find_element_by_id('elementID').send_keys(Keys.CONTROL + 'T')

Open in new window


      However, when a command such as this is sent to an element, it appears to do absolutely nothing.  I attempted to locate the topmost HTML element on the page and send the keys to that, but was again met with failure:

            
driver.find_element_by_id('wrapper').send_keys(Keys.CONTROL + 'T')

Open in new window

     
       Another version of this I found online, and was not able to verify its validity or lack thereof because I'm not sure what class/module which needs importing
		act = ActionChains(driver)
		act.key_down(browserKeys.CONTROL)
		act.click("").perform()
		act.key_up(browserKeys.CONTROL)

Open in new window


      Something very similar with different syntax (I'm not sure if one or both of these is correct syntax)
		actions.key_down(Keys.CONTROL)
		element.send_keys('t')
		actions.key_up(Keys.CONTROL)

Open in new window

LVL 1
courtenaytAsked:
Who is Participating?
 
clockwatcherConnect With a Mentor Commented:
Have you tried simply opening one with javascript?

>>> from selenium import webdriver
>>> b = webdriver.Firefox()
>>> b.execute_script("window.open('');")
>>> 

Open in new window


It seems to work for me.
0
 
courtenaytAuthor Commented:
Thanks!  Not sure why I couldn't find that anywhere online.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.