使用 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 独立服务器的计算机上生成一个浏览器窗口,然后执行所描述的测试。