from selenium import webdriver
import time
'''
本案例主要來講明新老窗口的切換
'''
driver = webdriver.Firefox()
driver.maximize_window()
driver.get("https://www.baidu.com/")
# 打印當前操做界面的句柄
current_handle = driver.current_window_handle
print('current_handle', current_handle)
driver.implicitly_wait(2) # 若是找到了就繼續,不然2秒等待
driver.find_element_by_id("kw").send_keys("selenium") # 在搜索框中輸入‘selenium’關鍵字
time.sleep(2) # 強制等待2秒
# 獲取當前打開頁的全部句柄並打印,應該只有一個
all_handles = driver.window_handles
print('all_handles', all_handles)
# 找到百度一下的按鈕,點擊
driver.find_element_by_id("su").click()
time.sleep(5)
# 點擊後進入新窗口,新窗口有本身的句柄
# 找到百度翻譯,點擊
#driver.find_element_by_link_text("百度翻譯").click()
#driver.find_element_by_link_text(str(u"百度翻譯".encode('utf-8'))).click()
#driver.find_element_by_link_text("百度百科").click()
driver.find_element_by_xpath(".//*[@id='4']/h3[1]/a[1]").click()
time.sleep(20)
# 獲取進入新窗口後全部的句柄,並打印當前全部的句柄,這次應該有兩個了
all_handles2 = driver.window_handles
print('all_handles2', all_handles2)
driver.implicitly_wait(2)
# 拿到新窗口句柄
newhandle = [handle for handle in all_handles2 if handle not in all_handles]
# 打印新窗口
print('newhandle', newhandle[0])
# 切換到新窗口
driver.switch_to.window(newhandle[0])
time.sleep(2)
# 打印新窗口的title
print('新窗口的title:', driver.title)
# 關閉當前窗口
driver.close()
driver.implicitly_wait(5)
time.sleep(1)
# 切換到原窗口
driver.switch_to.window(all_handles[0])
# 打印原窗口的title和切換後的句柄
print('原有老窗口的title:', driver.title)
print(driver.current_window_handle)
# 退出關閉瀏覽器
driver.quit()
web