這篇文章主要介紹了Python Selenium參數(shù)配置方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
selenium.獲取瀏覽器大小、設(shè)置瀏覽器位置、最大化瀏覽器
get_window_size() 獲取瀏覽器大小
1
2
3
4
5
|
# 將窗口大小實(shí)例化 size_Dict = driver.get_window_size() # 打印瀏覽器的寬和高 print ( "當(dāng)前瀏覽器的寬:" , size_Dict[ 'width' ]) print ( "當(dāng)前瀏覽器的高:" , size_Dict[ 'height' ]) |
set_window_size() 設(shè)置瀏覽器大小
1
|
driver.set_window_size(width = 500 , height = 500 , windowHandle = "current" ) |
get_window_position() 獲取瀏覽器在屏幕上的坐標(biāo)
1
2
3
4
5
6
|
# 將窗口位置實(shí)例化 position = driver.get_window_position() # 打印窗口坐標(biāo) print (position) print ( "瀏覽器所在位置的橫坐標(biāo):" , position[ "x" ]) print ( "瀏覽器所在位置的縱坐標(biāo):" , position[ "y" ]) |
set_window_position() 設(shè)置瀏覽器在屏幕的位置
1
2
3
|
# 設(shè)置窗口位置并打印位置坐標(biāo) driver.set_window_position(x = 100 , y = 200 ) print (driver.get_window_position()) |
maximize_window() 最大化瀏覽器
1
2
3
4
|
# 最大化瀏覽器并輸出瀏覽器的大小和位置坐標(biāo) driver.maximize_window() print (driver.get_window_size()) print (driver.get_window_position()) |
Selenium中的“顯式等待”和“隱式等待”
顯式等待(常用)
顯式等待的代碼定義了等待條件,只有該條件觸發(fā),才執(zhí)行后續(xù)代碼。下面代碼最多等待 10 秒,超時(shí)后就拋出 TimeoutException。
1
2
3
4
5
6
7
8
9
10
11
12
|
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 : # 等待后執(zhí)行的代碼 # driver.quit() |
隱式等待
隱式等待是在嘗試發(fā)現(xiàn)某個(gè)元素的時(shí)候,如果沒(méi)能立刻發(fā)現(xiàn),就等待固定長(zhǎng)度的時(shí)間。默認(rèn)設(shè)置是0秒。一旦設(shè)置了隱式等待時(shí)間,它的作用范圍就是Webdriver對(duì)象實(shí)例的整個(gè)生命周期。
1
2
3
4
5
6
|
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參數(shù)配置
1
2
3
4
5
6
7
8
9
10
11
|
from selenium import webdriver from selenium.webdriver.chrome.options import Options # 實(shí)例化一個(gè)啟動(dòng)參數(shù)對(duì)象 chrome_options = Options() # 無(wú)界面運(yùn)行(無(wú)窗口) chrome_options.add_argument( '--headless' ) # 啟動(dòng)瀏覽器 driver = webdriver.Chrome(chrome_options = chrome_options) # 請(qǐng)求百度首頁(yè) driver.get( 'http://www.baidu.com' ) |
其中的 –headless 就是一個(gè)啟動(dòng)項(xiàng)參數(shù)
常用的啟動(dòng)項(xiàng)參數(shù)如下所示
- –user-data-dir=”[PATH]” 指定用戶(hù)文件夾User Data路徑,可以把書(shū)簽這樣的用戶(hù)數(shù)據(jù)保存在系統(tǒng)分區(qū)以外的分區(qū)。
- –disk-cache-dir=”[PATH]“ 指定緩存Cache路徑
- –disk-cache-size= 指定Cache大小,單位Byte
- –first run 重置到初始狀態(tài),第一次運(yùn)行
- –incognito 隱身模式啟動(dòng)
- –disable-javascript 禁用Javascript
- –omnibox-popup-count=”num” 將地址欄彈出的提示菜單數(shù)量改為num個(gè)。我都改為15個(gè)了。
- –user-agent=”xxxxxxxx” 修改HTTP請(qǐng)求頭部的Agent字符串,可以通過(guò)about:version頁(yè)面查看修改效果
- –disable-plugins 禁止加載所有插件,可以增加速度??梢酝ㄟ^(guò)about:plugins頁(yè)面查看效果
- –disable-javascript 禁用JavaScript,如果覺(jué)得速度慢在加上這個(gè)
- –disable-java 禁用java
- –start-maximized 啟動(dòng)就最大化
- –no-sandbox 取消沙盒模式
- –single-process 單進(jìn)程運(yùn)行
- –process-per-tab 每個(gè)標(biāo)簽使用單獨(dú)進(jìn)程
- –process-per-site 每個(gè)站點(diǎn)使用單獨(dú)進(jìn)程
- –in-process-plugins 插件不啟用單獨(dú)進(jìn)程
- –disable-popup-blocking 禁用彈出攔截
- –disable-plugins 禁用插件
- –disable-images 禁用圖像
- –enable-udd-profiles 啟用賬戶(hù)切換菜單
- –proxy-pac-url 使用pac代理 [via 1/2]
- –lang=zh-CN 設(shè)置語(yǔ)言為簡(jiǎn)體中文
- –disk-cache-dir 自定義緩存目錄
- –disk-cache-size 自定義緩存最大值(單位byte)
- –media-cache-size 自定義多媒體緩存最大值(單位byte)
- –bookmark-menu 在工具 欄增加一個(gè)書(shū)簽按鈕
- –enable-sync 啟用書(shū)簽同步
- –single-process 單進(jìn)程運(yùn)行Google Chrome
- –start-maximized 啟動(dòng)Google Chrome就最大化
- –disable-java 禁止Java
Selenium+Chrome模擬移動(dòng)設(shè)備
1
2
3
4
5
6
|
# 通過(guò)設(shè)置user-agent,用來(lái)模擬移動(dòng)設(shè)備 # 比如模擬 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禁止圖片加載的參數(shù)配置
1
2
3
4
5
|
# 禁止圖片的加載 from selenium import webdriver chrome_options = webdriver.ChromeOptions() prefs = { "profile.managed_default_content_settings.images" : 2 } chrome_options.add_experimental_option( "prefs" , prefs) |
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。
原文鏈接:https://www.cnblogs.com/yoyowin/p/12208277.html