1. 程式人生 > 程式設計 >Selenium使用Chrome模擬手機瀏覽器方法解析

Selenium使用Chrome模擬手機瀏覽器方法解析

在使用Chrome瀏覽網頁時,我們可以使用Chrome開發者工具模擬手機瀏覽器,在使用Selenium操作Chrome時同樣也可以模擬手機瀏覽器。主要有以下兩種用途。

測試H5頁面在不同解析度裝置上的顯示情況是否正常爬取資料(一般網站對移動裝置瀏覽的反爬教弱)使用指定裝置

操作方法非常簡單,在ChromeOptions()瀏覽器選項,新增實驗選項,mobileEmulation選項中通過devicename指定選擇的裝置即可,操作程式碼如下。

from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_experimental_option('mobileEmulation',{'deviceName': 'iPhone X'}) # 模擬iPhone X瀏覽
driver = webdriver.Chrome(options=options)
driver.get('http://m.baidu.com')

操作效果如下圖:

Selenium使用Chrome模擬手機瀏覽器方法解析

Chrome開發者工具中已經設定好的裝置型別非常多,可以在開發者工具->Settings->Devices中檢視,如下圖:

Selenium使用Chrome模擬手機瀏覽器方法解析

使用自定義裝置

mobileEmulation除了可以通過deviceName指定裝置之外,還可以通過deviceMetrics指定裝置指標,一般裝置指標包含

  • width: 裝置寬度
  • height: 裝置高度
  • piexelRatio: 裝置畫素密度
  • userAgent:裝置瀏覽器標識

使用示例如下:

from selenium import webdriver
options = webdriver.ChromeOptions()

options.add_experimental_option('mobileEmulation',{'deviceMetrics':{'width': 320,'height': 640,'piexelRatio': 3.0,'userAgent': 'Mozilla/5.0 (Linux; Android 4.1.1; GT-N7100 Build/JRO03C) AppleWebKit/537.36 (KHTML,like Gecko) Version/4.0 Chrome/35.0.1916.138 Mobile Safari/537.36 T7/6.3'
           }
  }
  )

driver = webdriver.Chrome(options=options)
driver.get('http://m.baidu.com')

當然如果只需要測試不同解析度的話也可以只設置width和height值。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。