使用 Mink 和 Selenium 測試 JavaScript

如果我們想在網站上測試 JavaScript,我們需要使用比 Goutte 更強大的功能(通過 Guzzle 只是 cURL)。有一些選項,如 ZombieJSSeleniumSahi 。對於這個例子,我將使用 Selenium。

首先,你需要安裝 Mink 的驅動程式:

$ composer require --dev behat/mink-selenium2-driver="^1.2"

你還需要下載 Selenium 獨立伺服器 jar 檔案並啟動它:

$ java -jar selenium-server-standalone-2.*.jar

當我們使用 @javascript 標籤使用 Selenium 驅動程式並提供 Selenium 獨立伺服器的位置時,我們還需要告訴 Behat。

# ./behat.yml
default:
    # …
    extensions:
        Behat\MinkExtension:
        base_url: "[your website URL]"
        sessions:
            # …
            javascript:
                selenium2:
                    browser: "firefox"
                    wd_host: http://localhost:4444/wd/hub

然後,對於你希望使用瀏覽器模擬執行的每個測試,你只需要在功能或方案的開頭新增 @javascript(或 @selenium2)標記。

# ./features/TestSomeJavascriptThing.feature
@javascript # or we could use @selenium2
Feature: This test will be run with browser emulation

然後可以通過 Behat 執行測試(與任何其他測試一樣)。一個區別是,當測試執行時,它應該在執行 Selenium 獨立伺服器的計算機上生成一個瀏覽器視窗,然後執行所描述的測試。