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的滾動方法,滾動其實有幾種高級方法的,後續有空補上