selenium瀏覽器自動化 6 - selenium server 遠程操作瀏覽器

selenium-server可支持遠程操作,而cilent端要使用selenium,直接遠程調用selenium-server,支持多系統平台或多版本瀏覽器同時測試,因為是由clinet進行控制,selenium服務器也不用拉取腳本,非常方便管理。

基本環境

  1. java

必須先安裝java,選擇jre即可。

官網下載

  1. webdriver

下載webdriver加到環境變數,一定要加入否則會無法驅動。

ChromeDriver地址

  1. selenium-server-standalone

至官網下載最新版本selenium-server,需透過java啟動server。

官網下載

  1. 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'}

你可能感兴趣的:(selenium瀏覽器自動化 6 - selenium server 遠程操作瀏覽器)