Selenium系列(二) – 控制瀏覽器操作的詳細解讀
- 2020 年 3 月 26 日
- 筆記
如果你還想從頭學起Selenium,可以看看這個系列的文章哦!
https://www.cnblogs.com/poloyy/category/1680176.html
其次,如果你不懂前端基礎知識,需要自己去補充哦,博主暫時沒有總結(雖然我也會,所以我學selenium就不用複習前端了哈哈哈…)
控制瀏覽器有哪些操作?
- 最大化、最小化瀏覽器
- 控制、獲取瀏覽器大小
- 獲取當前標籤頁title、url
- 前進、後退、刷新
- 執行js語句
- 打開、關閉新標籤頁
- 滾動頁面
點擊右邊目錄即可跳轉哦! ————–>>>>>>>>>>
最大化、最小化瀏覽器
from time import sleep from selenium import webdriver # 加載瀏覽器驅動 driver = webdriver.Chrome("../resources/chromedriver.exe") # 訪問網址 driver.get("https://www.baidu.com") # 最大化瀏覽器 driver.maximize_window() sleep(2) # 最小化瀏覽器 driver.minimize_window()
控制、獲取瀏覽器大小
# 加載瀏覽器驅動 driver = webdriver.Chrome("../resources/chromedriver.exe") # 訪問網址 driver.get("https://www.baidu.com") # 獲取瀏覽器大小 size = driver.get_window_size() print(f"瀏覽器大小:{size}") sleep(2) # 設置瀏覽器大小 driver.set_window_size(1200, 1000)
執行結果
瀏覽器大小:{'width': 1936, 'height': 1056}
知識點
get_window_size() 返回的是字典
獲取當前標籤頁title、url
# 加載瀏覽器驅動 driver = webdriver.Chrome("../resources/chromedriver.exe") # 訪問網址 driver.get("https://www.baidu.com") # 獲取當前標籤頁的title print(f"標籤頁title:{driver.title}") # 獲取當前標籤頁的url print(f"標籤頁url:{driver.current_url}") # 獲取當前瀏覽器的名稱(不常用) print(f"標籤頁name:{driver.name}") # 獲取當前頁面完整的HTML代碼
(不常用)
print(f"標籤頁page_source:{driver.page_source}")
執行結果
標籤頁title:百度一下,你就知道 標籤頁url:https://www.baidu.com/ 標籤頁name:chrome 標籤頁page_source:<html><head>...</head></html>
前進、後退、刷新
# 前進 driver.forward() # 後退 driver.back() # 刷新 driver.refresh()
執行js語句
# 同步執行js js='console.log(2)' driver.execute_script(js) # 異步執行js driver.execute_async_script("alert(2)")
打開、關閉新標籤頁
# 打開新的標籤頁 js = 'window.open("https://www.baidu.com/")' driver.execute_script(js) # 獲取當前標籤頁句柄 print(driver.current_window_handle) # 獲取瀏覽器所有標籤頁句柄 handles = driver.window_handles print(handles) # 切換標籤頁 driver.switch_to.window(handles[-1]) # 關閉當前標籤頁 driver.close()
執行結果
CDwindow-24C58D8D81CCC95D5D55E887402B7E0A ['CDwindow-24C58D8D81CCC95D5D55E887402B7E0A', 'CDwindow-04C35D93CD4A04351BAC1CFFA36378CA', 'CDwindow-AC59AC67423FB8463AF0C534C7A47098']
知識點
- 打開新的標籤頁只能通過 js 來操作
- 可以根據標籤頁的句柄來切換標籤頁
- 操作標籤頁的好處就是,可以只打開一個瀏覽器但可以訪問多個不同的網頁;這在後續集成單元測試框架(unittest、pytest)的時候會有很大的幫助
滾動頁面
# 滾動隨機高度 js = "var q=document.documentElement.scrollTop=" + random.randint(100, 999) driver.execute_script(js)
知識點
這裡暫時只介紹js的滾動方法,滾動其實有幾種高級方法的,後續有空補上