如何在标签之间切换?

时间:2016-06-06 08:11:49

标签: python selenium selenium-webdriver

我正在使用Selenium(使用Firefox)测试Web服务,我需要能够在多个选项卡之间切换,但我不知道如何做到这一点。我尝试了以下但它不起作用。我做错了什么?

from selenium import webdriver

driver = webdriver.Firefox()

# OPEN UP THE MULTIPLE TABS

for i in driver.window_handles:
    driver.switch_to.window(i) # I HAVE TRIED switch_to_window(i) TOO

我也尝试在我自己的列表中保存每个窗口句柄,并使用它而不是window_handles,但这也不起作用。

2 个答案:

答案 0 :(得分:2)

在这里,我给出了打开新标签并关闭它的代码。

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

driver = webdriver.Firefox()#Chrome("chromedriver.exe") 
try:
    driver.get("http://www.google.co.in")
    driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't') 
    driver.get("http://www.stackoverflow.com")
    #driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 'w') 
    driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.TAB) 
    #driver.close()
except Exception as e:
    print e

答案 1 :(得分:1)

要打开多个窗口,您可以使用window.open执行execute_script

driver = webdriver.Chrome()

driver.get("https://www.google.co.in/search?q=search1")

driver.execute_script("window.open(arguments[0], 'win2')", \
    "https://www.google.co.in/search?q=search2")

driver.execute_script("window.open(arguments[0], 'win3')", \
    "https://www.google.co.in/search?q=search3")

driver.execute_script("window.open(arguments[0], 'win4')", \
    "https://www.google.co.in/search?q=search4")

driver.switch_to_window("win4")