Solved

How do I open new tab or window from selenium python

Posted on 2013-06-26
2
4,549 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

What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

Join & Write a Comment

#Citrix #Internet Explorer #Enterprise Mode #IE 11 #IE 8
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.
Google currently has a new report that is in beta and coming soon to Webmaster Tool accounts. This Micro Tutorial will highlight new features for Google Webmaster Tools.
This Micro Tutorial will demonstrate how nuggets on the Web are formatted by using Chrome Developer Tools. These tools would not only view the site's CSS but it can also modify it and save the CSS to use on your own site.

757 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

23 Experts available now in Live!

Get 1:1 Help Now