selenium瀏覽器自動化 6 - selenium serv
2018-05-31 本文已影响30人
Maliao
selenium-server可支持遠程操作,而cilent端要使用selenium,直接遠程調用selenium-server,支持多系統平台或多版本瀏覽器同時測試,因為是由clinet進行控制,selenium服務器也不用拉取腳本,非常方便管理。
基本環境
- java
必須先安裝java,選擇jre即可。
- webdriver
下載webdriver加到環境變數,一定要加入否則會無法驅動。
- selenium-server-standalone
至官網下載最新版本selenium-server,需透過java啟動server。
- python module "selenium"
pip install selenium
啟動
- 啟動 selenium-server
java -jar selenium-server-standalone-3.12.0.jar
啟動 默認是4444端口
image網頁訪問
image進入console可以看到目前開啟了那些Sessions,點擊Take Screenshot會顯示當前畫面截圖。
image- client 腳本控制
server與client可以是同一台,也可以分開,由於是瀏覽器自動化,分開的話會更好調試,也比較不會有搶屏的問題。
官方文檔有說明驅動方式:
Usage Example::
from selenium import webdriver
selenium_grid_url = "http://198.0.0.1:4444/wd/hub"
# Create a desired capabilities object as a starting point.
capabilities = DesiredCapabilities.FIREFOX.copy()
capabilities['platform'] = "WINDOWS"
capabilities['version'] = "10"
# Instantiate an instance of Remote WebDriver with the desired capabilities.
driver = webdriver.Remote(desired_capabilities=capabilities,
command_executor=selenium_grid_url)
Note: Always use '.copy()' on the DesiredCapabilities object to avoid the side
effects of altering the Global class instance.
remote_script1.py
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium import webdriver
browser = webdriver.Remote(
command_executor='http://127.0.0.1:4444/wd/hub',
desired_capabilities=DesiredCapabilities.CHROME,
)
browser.get("http://www.google.com")
browser.quit()
DesiredCapabilities為瀏覽器的一些自定義,以下的說明文檔查看更多的配置。
DesiredCapabilities.CHROME # 默認的設置,返回的是字典類型
>>> {'browserName': 'chrome', 'version': '', 'platform': 'ANY'}