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.
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)
Iterating through open windows (although there is currently only one)
for handle in driver.window_handles: driver.switch_to_window(handle)
Attempting to simulate a keyboard key press
from selenium.webdriver.common.keys import Keys driver.send_keys(Keys.CONTROL + 'T')
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')
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')
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)
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)
execute_script()
with the proper javascript code. Case you need to pass items/cookies, just create a target=_blank link then click it before. – Monoplegia