web自動化–如何在不同頁面間遊刃有餘

TwCsLj發表於2018-10-18

大家都知道,selenium中對頁面元素的操作都是基於當前頁面進行操作的,有時會有這種情況,在這個頁面操作完一個步驟後,要去另一個頁面檢視,這就涉及到頁面間的操作

 1 # -*- coding:utf-8 -*-
 2 ```
 3 Created on Oct 17, 2018
 4 
 5 Comment: 
 6 ```
 7 import time
 8 from selenium import webdriver
 9 driver = webdriver.Chrome()
10 driver.implicitly_wait(20)
11 driver.get("http://news.baidu.com/") # 開啟百度新聞首頁
12 driver.find_element_by_partial_link_text("十九大精神").click() # 開啟一個新視窗
13 handle = driver.window_handles # 獲取所有開啟視窗的控制程式碼
14 driver.switch_to_window(handle[-1]) # 開啟最後一個視窗
15 time.sleep(5)  # 加延時,以防頁面還未完全載入完成就被關掉了
16 driver.close()  # 關閉最後一個視窗
17 driver.switch_to_window(handle[0]) # 開啟第一個視窗
18 time.sleep(3)
19 driver.close() # 關閉第一個視窗

總結:對一個頁面操作完並close之後,一定要先進行切換到目標視窗方可進行操作,否則會提示錯誤或者找不到元素,因為如果不進行切換操作,程式會認為你當前還處理原來介面,但是原來介面已經被關掉了,所以就報錯了。

 

相關文章