Solved

How do I open new tab or window from selenium python

Posted on 2013-06-26
2
4,654 Views
Last Modified: 2013-12-13
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

0
Comment
Question by:courtenayt
2 Comments
 
LVL 25

Accepted Solution

by:
clockwatcher earned 500 total points
ID: 39286161
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
 
LVL 1

Author Closing Comment

by:courtenayt
ID: 39287013
Thanks!  Not sure why I couldn't find that anywhere online.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

This article offers some helpful and general tips for safe browsing and online shopping. It offers simple and manageable procedures that help to ensure the safety of one's personal information and the security of any devices.
If your app took Google’s lash recently, here are the 5 most likely reasons.
Shows how to create a shortcut to site-search Experts Exchange using Google in the Chrome browser. This eliminates the need to type out site:experts-exchange.com whenever you want to search the site. Launch the Search Engine Menu: In chrome, via you…
This is used to tweak the memory usage for your computer, it is used for servers more so than workstations but just be careful editing registry settings as it may cause irreversible results. I hold no responsibility for anything you do to the regist…

911 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now