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()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM