1. 程式人生 > 程式設計 >Python Selenium引數配置方法解析

Python Selenium引數配置方法解析

這篇文章主要介紹了Python Selenium引數配置方法解析,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

selenium.獲取瀏覽器大小、設定瀏覽器位置、最大化瀏覽器

get_window_size()     獲取瀏覽器大小

# 將視窗大小例項化
size_Dict = driver.get_window_size()
# 列印瀏覽器的寬和高
print("當前瀏覽器的寬:",size_Dict['width'])
print("當前瀏覽器的高:",size_Dict['height'])

set_window_size()     設定瀏覽器大小

driver.set_window_size(width=500,height=500,windowHandle="current")

get_window_position()    獲取瀏覽器在螢幕上的座標

# 將視窗位置例項化
position = driver.get_window_position()
# 列印視窗座標
print(position)
print("瀏覽器所在位置的橫座標:",position["x"])
print("瀏覽器所在位置的縱座標:",position["y"])

set_window_position()    設定瀏覽器在螢幕的位置

# 設定視窗位置並列印位置座標
driver.set_window_position(x=100,y=200)
print(driver.get_window_position())

maximize_window()    最大化瀏覽器

# 最大化瀏覽器並輸出瀏覽器的大小和位置座標
driver.maximize_window()
print(driver.get_window_size())
print(driver.get_window_position())

Selenium中的“顯式等待”和“隱式等待”

顯式等待(常用)

顯式等待的程式碼定義了等待條件,只有該條件觸發,才執行後續程式碼。下面程式碼最多等待 10 秒,超時後就丟擲 TimeoutException。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Firefox()driver.get("http://somedomain/url_that_delays_loading")
try:  
  element = WebDriverWait(driver,10).until(     
    EC.presence_of_element_located((By.ID,"myDynamicElement")))
finally:
  # 等待後執行的程式碼
  # driver.quit()

隱式等待

隱式等待是在嘗試發現某個元素的時候,如果沒能立刻發現,就等待固定長度的時間。預設設定是0秒。一旦設定了隱式等待時間,它的作用範圍就是Webdriver物件例項的整個生命週期。

from selenium import webdriver

driver = webdriver.Firefox()
driver.implicitly_wait(10) # seconds
driver.get("http://somedomain/url_that_delays_loading")
myDynamicElement = driver.find_element_by_id("myDynamicElement")

Selenium+Chrome引數配置

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# 例項化一個啟動引數物件
chrome_options = Options()
# 無介面執行(無視窗)
chrome_options.add_argument('--headless')
# 啟動瀏覽器
driver = webdriver.Chrome(chrome_options=chrome_options)
# 請求百度首頁
driver.get('http://www.baidu.com')

其中的 –headless 就是一個啟動項引數

常用的啟動項引數如下所示

  • –user-data-dir=”[PATH]” 指定使用者資料夾User Data路徑,可以把書籤這樣的使用者資料儲存在系統分割槽以外的分割槽。
  • –disk-cache-dir=”[PATH]“ 指定快取Cache路徑
  • –disk-cache-size= 指定Cache大小,單位Byte
  • –first run 重置到初始狀態,第一次執行
  • –incognito 隱身模式啟動
  • –disable-javascript 禁用Javascript
  • –omnibox-popup-count=”num” 將位址列彈出的提示選單數量改為num個。我都改為15個了。
  • –user-agent=”xxxxxxxx” 修改HTTP請求頭部的Agent字串,可以通過about:version頁面檢視修改效果
  • –disable-plugins 禁止載入所有外掛,可以增加速度。可以通過about:plugins頁面檢視效果
  • –disable-javascript 禁用JavaScript,如果覺得速度慢在加上這個
  • –disable-java 禁用java
  • –start-maximized 啟動就最大化
  • –no-sandbox 取消沙盒模式
  • –single-process 單程序執行
  • –process-per-tab 每個標籤使用單獨程序
  • –process-per-site 每個站點使用單獨程序
  • –in-process-plugins 外掛不啟用單獨程序
  • –disable-popup-blocking 禁用彈出攔截
  • –disable-plugins 禁用外掛
  • –disable-images 禁用影象
  • –enable-udd-profiles 啟用賬戶切換選單
  • –proxy-pac-url 使用pac代理 [via 1/2]
  • –lang=zh-CN 設定語言為簡體中文
  • –disk-cache-dir 自定義快取目錄
  • –disk-cache-size 自定義快取最大值(單位byte)
  • –media-cache-size 自定義多媒體快取最大值(單位byte)
  • –bookmark-menu 在工具 欄增加一個書籤按鈕
  • –enable-sync 啟用書籤同步
  • –single-process 單程序執行Google Chrome
  • –start-maximized 啟動Google Chrome就最大化
  • –disable-java 禁止Java

Selenium+Chrome模擬移動裝置

# 通過設定user-agent,用來模擬移動裝置
# 比如模擬 android QQ瀏覽器
options.add_argument('user-agent="MQQBrowser/26 Mozilla/5.0 (Linux; U; Android 2.3.7; zh-cn; MB200 Build/GRJ22; CyanogenMod-7) AppleWebKit/533.1 (KHTML,like Gecko) Version/4.0 Mobile Safari/533.1"')

# 模擬iPhone 6
options.add_argument('user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML,like Gecko) Version/9.0 Mobile/13B143 Safari/601.1"')

Selenium+Chrome禁止圖片載入的引數配置

# 禁止圖片的載入
from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
prefs = {"profile.managed_default_content_settings.images": 2}
chrome_options.add_experimental_option("prefs",prefs)

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