由于在實際的測試環境下,使用圖形界面的瀏覽器占用測試機資源過大效率低, 一般來說,在調試好腳本的基礎上,拋開瀏覽器圖形界面執行測試用例的.
現在可以使用的無頭瀏覽器有很多,這里介紹一個使用方便的無頭瀏覽器的解決方案 -- 使用Chrome的禁用圖形界面運行.
一般使用Chrome進行腳本運行時,使用的是Chrome類實例化的瀏覽器對象, 其實還有另一個類提供了對瀏覽器的配置 -- ChromeOptions(
selenium.webdriver.ChromeOptions)
from selenium import webdriver
# 創建出啟動瀏覽器所需要配置 -- 實例化ChromeOptions瀏覽器選項對象
co = webdriver.ChromeOptions()
# 構建配置信息 -- 通過瀏覽器選項對象調用配置方法
co.headless = True # 設置瀏覽器為無頭模式
# 將配置信息加入到瀏覽器啟動 -- 實例化瀏覽器驅動對象添加屬性option值
driver = webdriver.Chrome(options=co)
# 設置瀏覽器頁面大小為常用窗口大小1366*768
driver.set_window_size(1366, 768)
# 打開頁面, 進行頁面操作
driver.get("http://www.baidu.com")
# 業務操作
driver.find_element_by_id("kw").send_keys("chrome")
driver.get_screenshot_as_file("./a.png")
# 退出瀏覽器驅動對象
driver.quit()

首先: 明確Selenium的編寫自動化測試腳本的基本步驟
模擬用戶打開瀏覽器 -- 實例化瀏覽器驅動對象
模擬輸入網址操作 -- 驅動對象調用get方法
模擬用戶頁面操作 -- 驅動對象頁面定位和元素操作
模擬用戶關閉瀏覽器 -- 驅動對象調用quit方法
from selenium import webdriver
# 1. 模擬用戶打開瀏覽器 -- 實例化瀏覽器驅動對象
driver = webdriver.Chrome()
# 2. 模擬輸入網址操作 -- 驅動對象調用get方法
driver.get("http://www.baidu.com")
# 3. 模擬用戶頁面操作 -- 驅動對象頁面定位和元素操作
driver.find_element_by_id("kw").send_keys("chrome")
driver.get_screenshot_as_file("./a.png")
# 4. 模擬用戶關閉瀏覽器 -- 驅動對象調用quit方法
driver.quit()
然后: 針對驅動對象的實例化操作進行擴展 -- ChromeOptions
上面瀏覽器是默認啟動的瀏覽器 -- 沒有進行任何配置 -- 如何實現瀏覽器的配置啟動呢?
創建出啟動瀏覽器所需要配置 -- 實例化ChromeOptions瀏覽器選項對象
構建配置信息 -- 通過瀏覽器選項對象調用配置方法
將配置信息加入到瀏覽器啟動 -- 實例化瀏覽器驅動對象添加屬性option值
from selenium import webdriver
# 創建出啟動瀏覽器所需要配置 -- 實例化ChromeOptions瀏覽器選項對象
co = webdriver.ChromeOptions()
# 構建配置信息 -- 通過瀏覽器選項對象調用配置方法
co.headless = True # 設置瀏覽器為無頭模式
# 將配置信息加入到瀏覽器啟動 -- 實例化瀏覽器驅動對象添加屬性option值
driver = webdriver.Chrome(options=co)
# 打開頁面, 進行頁面操作
driver.get("http://www.baidu.com")
# 業務操作
driver.find_element_by_id("kw").send_keys("chrome")
driver.get_screenshot_as_file("./a.png")
# 退出瀏覽器驅動對象
driver.quit()
最后: 優化一下上面的代碼,窗口太小無法看到整個頁面 -- 最大化瀏覽器窗口
注意: 這里有一個有意思的現象: driver.maximize_window() 在這里是無法起效的
所以需要使用另一個控制窗口大小的方法driver.setwindowsize(x,y)
from selenium import webdriver
# 創建出啟動瀏覽器所需要配置 -- 實例化ChromeOptions瀏覽器選項對象
co = webdriver.ChromeOptions()
# 構建配置信息 -- 通過瀏覽器選項對象調用配置方法
co.headless = True # 設置瀏覽器為無頭模式
# 將配置信息加入到瀏覽器啟動 -- 實例化瀏覽器驅動對象添加屬性option值
driver = webdriver.Chrome(options=co)
# 設置瀏覽器頁面大小為常用窗口大小1366*768
driver.set_window_size(1366, 768)
# 打開頁面, 進行頁面操作
driver.get("http://www.baidu.com")
# 業務操作
driver.find_element_by_id("kw").send_keys("chrome")
driver.get_screenshot_as_file("./a.png")
# 退出瀏覽器驅動對象
driver.quit()
總結
如果需要更多瀏覽器設置,最好的方法可以進入ChromeOptions類中讀懂代碼,可以學到很多。喜歡記得關注一下哦。