了解DesiredCapabilities

DesiredCapabilities是Selenium WebDriver中的一個重要概念。通過DesiredCapabilities,我們可以對不同的瀏覽器進行定製化配置和設置。本文將從多個方面介紹DesiredCapabilities的

一、sessionid

sessionid是Webdriver向瀏覽器注入JS腳本並控制瀏覽器的入口,通過sessionid,Webdriver可以把瀏覽器啟動後的句柄返回給客戶端,客戶端通過該ID可以定位到該執行程序中的特定實例。例如,我們可以通過調用driver.session_id屬性獲取代表當前瀏覽器實例的session ID,並保存該ID,以便稍後使用該Webdriver實例。

from selenium import webdriver

driver = webdriver.Chrome()
session_id = driver.session_id
print(session_id)
driver.quit()

二、capabilities的基本設置

Capabilities是一個對象,它描述了我們要使用的瀏覽器的屬性。一些基本屬性如下:

  • browserName:要使用的瀏覽器的名稱,例如Chrome, Firefox, Safari等
  • version:要使用的瀏覽器的版本號,例如78.0.3904.97
  • platform:要運行的平台,例如Windows, Macintosh, Linux
from selenium import webdriver

desired_cap = {'browserName': 'chrome', 'version': '78.0.3904.97', 'platform': 'Windows 10'}
driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities=desired_cap)
driver.get("https://www.google.com")
print(driver.title)
driver.quit()

三、設置代理

如果你需要使用代理,可以添加proxy相關的Capabilities。例如:

from selenium import webdriver

PROXY = "xxx.xxx.xxx.xxx:xxxx"
webdriver.DesiredCapabilities.CHROME['proxy']={
    "httpProxy":PROXY,
    "ftpProxy":PROXY,
    "sslProxy":PROXY,
    "proxyType":"MANUAL",
}

driver = webdriver.Chrome()
driver.get("https://www.google.com")
print(driver.title)
driver.quit()

四、設置瀏覽器大小和位置

我們經常需要設置瀏覽器的大小和位置,這可以通過設置windowSize和windowPosition來實現。

from selenium import webdriver

desired_cap = {'browserName': 'chrome', 'version': '78.0.3904.97', 'platform': 'Windows 10', 'chromeOptions': {'args': ['--start-maximized']}}
driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities=desired_cap)
driver.get("https://www.google.com")
print(driver.session_id)
driver.quit()

五、設置瀏覽器語言

有時候我們需要在特定的語言環境下進行自動化測試,這時可以通過設置language和locale屬性來完成。

from selenium import webdriver

desired_cap = {'browserName': 'chrome', 'version': '78.0.3904.97', 'platform': 'Windows 10', 'chromeOptions': {'args': ['--lang=zh-CN', '--disable-extensions']}}
driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities=desired_cap)
driver.get("https://www.google.com")
print(driver.title)
driver.quit()

小結

通過上述實例和介紹,我們可以了解到DesiredCapabilities的各種用法和定製化配置。

原創文章,作者:PDEY,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/147209.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
PDEY的頭像PDEY
上一篇 2024-11-01 14:06
下一篇 2024-11-01 14:06

發表回復

登錄後才能評論