Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python -- Opening multiple tabs using Selenium

I am using Python. I am trying to open two tabs on chrome, each to a different website. This is my code:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time


browser=webdriver.Chrome()
browser.get('http:/reddit.com')
browser.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't')
time.sleep(3)
browser.get('http://bing.com')

When I run it, the first tab is opened to reddit.com, and then another tab opens to my default webpage, and then bing.com is opened in the original tab. I want the first tab to go to Reddit and the second tab to go to bing, but browser.get('website') only acts on the first tab.

like image 222
Shock-o-lot Avatar asked Sep 01 '16 22:09

Shock-o-lot


People also ask

Can selenium open multiple tabs?

Just like you might open web pages in different tabs locally, it's also possible to have multiple tabs up in one browser during a Selenium test.


1 Answers

To interact with a window, you need to set the context to that window with driver.switch_to.window. It would also be easier to open a new tab with a script injection:

browser=webdriver.Chrome()

#first tab
browser.get('http:/reddit.com')

#second tab
browser.execute_script("window.open('about:blank', 'tab2');")
browser.switch_to.window("tab2")
browser.get('http://bing.com')
like image 55
Florent B. Avatar answered Oct 19 '22 06:10

Florent B.