Selenium操作Chrome模擬手機瀏覽器



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

  1. 測試H5頁面在不同分辨率設備上的顯示情況是否正常
  2. 爬取數據(一般網站對移動設備瀏覽的反爬教弱)

使用指定設備

操作方法非常簡單,在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中查看,如下圖:
Chrome開發者工具支持的Devices

使用自定義設備

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值。


免責聲明!

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



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