1. 程式人生 > 其它 >selenium操作瀏覽器基本方法

selenium操作瀏覽器基本方法

本節主要講如何用Python呼叫webdriver框架的API,對瀏覽器做一些常規的操作,如開啟、休眠、前進、後退、重新整理、設定視窗大小、截圖、退出、在新視窗開啟連結,切換到新視窗等操作,以下以Chrome瀏覽器為例,Firefox和IE類似,此處仍以百度為例。

一、開啟網站

1.從selenium裡面匯入webdriver模組;

2.開啟Chrome瀏覽器;

3.開啟百度網址;

1 # coding:utf-8
2 # 從selenium匯入webdriver
3 from selenium import webdriver
4 
5 # 開啟Chrome瀏覽器
6 driver = webdriver.Chrome()
7 # 開啟百度 8 driver.get("https://www.baidu.com")

二、設定休眠

由於開啟網址後,如果網路不佳或頁面載入渲染花費時間比較長,導致頁面載入需要幾秒鐘,所以最好是等到頁面載入完成後再繼續下一步操作。

1. 從time模組中匯入sleep方法;

2. 設定等待時間,單位是秒(s),時間值可以是小數也可以是整數;

1 # coding:utf-8
2 from selenium import webdriver
3 from time import sleep
4 
5 driver = webdriver.Chrome()
6 driver.get("https://www.baidu.com
") 7 # 休眠2秒,引數可以為整數或小數 8 sleep(2)

三、前進和後退

1. 當在一個瀏覽器視窗開啟兩個頁面後,返回上一頁面,即點選瀏覽器左上角的左箭頭按鈕;

2. 返回到上一頁面後,則可切換到下一頁,即點選瀏覽器左上角的右箭頭按鈕;

 1 # coding:utf-8
 2 from selenium import webdriver
 3 from time import sleep
 4 
 5 driver = webdriver.Chrome()
 6 driver.get("https://www.baidu.com")
 7 sleep(2)
 8 driver.get("
https://www.python.org/") 9 sleep(2) 10 # 返回上一級 11 driver.back() 12 sleep(2) 13 # 返回下一級 14 driver.forward()

四、頁面重新整理

有時候頁面操作後,資料可能沒及時同步,需要重新重新整理web;所以做自動化需要模擬重新整理web的操作

1 # coding:utf-8
2 from selenium import webdriver
3 from time import sleep
4 
5 driver = webdriver.Chrome()
6 driver.get("https://www.baidu.com")
7 sleep(2)
8 # 重新整理web頁面
9 driver.refresh()

五、設定視窗大小

設定瀏覽器視窗大小,如設定視窗解析度為500*800,也可以最大最小化視窗。

 1 # coding:utf-8
 2 from selenium import webdriver
 3 from time import sleep
 4 
 5 driver = webdriver.Chrome()
 6 driver.get("https://www.baidu.com")
 7 sleep(2)
 8 # 設定視窗解析度為500*800
 9 driver.set_window_size(500, 800)
10 sleep(2)
11 # 視窗最大化
12 driver.maximize_window()
13 sleep(2)
14 # 視窗最小化
15 driver.minimize_window()

六、截圖

1. 開啟網站之後,可以對螢幕截圖

2. 截圖後設置制定的儲存路徑+檔名稱+字尾

1 # coding:utf-8
2 from selenium import webdriver
3 from time import sleep
4 
5 driver = webdriver.Chrome()
6 driver.get("https://www.baidu.com")
7 sleep(2)
8 # 截圖
9 driver.get_screenshot_as_file(r"D:\\picture.png")

七、在新視窗開啟連結

1. 開啟網頁後,也可以重新建立一個視窗;

2. 在新視窗開啟連結;

 1 # coding:utf-8
 2 from selenium import webdriver
 3 from time import sleep
 4 
 5 driver = webdriver.Chrome()
 6 driver.get("https://www.baidu.com")
 7 sleep(2)
 8 # 在新視窗開啟連結
 9 newWin = "window.open('https://www.baidu.com')"
10 driver.execute_script(newWin)

八、切換到新視窗

1. 當網頁中有過個視窗,也可以通過切換控制代碼操作;

2. 通過控制代碼操控不同的視窗;

 1 # coding:utf-8
 2 from selenium import webdriver
 3 from time import sleep
 4 
 5 driver = webdriver.Chrome()
 6 driver.get("https://www.baidu.com")
 7 sleep(2)
 8 newWin = "window.open('https://www.baidu.com')"
 9 driver.execute_script(newWin)
10 # 控制代碼切換到新視窗
11 handles = driver.window_handles
12 # driver.switch_to_window(handles[-1])# -1為最新開啟的視窗
13 driver.switch_to_window(handles[0])# 0為第一個開啟的視窗
14 driver.find_element_by_id("kw").send_keys("python")

九、退出

1. 退出有兩種方式,一種是close,另外一種是quit;

2. close用於關閉當前視窗,當開啟的視窗較多時,就可以用close關閉部分視窗;

3. quit用於結束程序,關閉所有的視窗,即關閉當前瀏覽器程序;

4. 最後結束測試,要用quit。quit可以回收c盤的臨時檔案。

 1 # coding:utf-8
 2 from selenium import webdriver
 3 from time import sleep
 4 
 5 driver = webdriver.Chrome()
 6 driver.get("https://www.baidu.com")
 7 sleep(2)
 8 # 關閉當前視窗
 9 # driver.close()
10 # 關閉當前瀏覽器程序
11 driver.quit()