有没有办法在 mink 中模拟 link/button 的点击?

Is there a way to simulate a link/button click in mink?

我正在使用无头浏览器 (phantomjs) 结合 Mink 在我的网站上进行一些功能测试。
现在在此设置中,无法定期下载文件,例如:通过单击 link。所以我必须从 link 按钮 中提取 url,然后手动下载文件。

正如我刚才所说,有时没有 link () 可供下载,但在表单 中有一个 按钮(例如:在表格中输入报告数据,并在提交时收到报告文件)。

所以我需要做的是 simulate 单击 link 或按钮并提取请求的数据本应 发送,并使用该数据手动下载文件。

有办法吗?
注意:我正在使用guzzle实际下载文件。

嗯...我不知道你是否解决了这个问题,只是作为典型的 mink 方法的替代方法。由于 Phantomjs 是基于 javascript 的浏览器引擎,您尝试过使用 javascript 吗?

您可以尝试这样的操作:

public function getElementHref($element)
{
    /* @var FeatureContext $this */
    $function = "(function(){
        //Javascript method to get the href.
    })()";
    try {
        return $this->featureContext->getSession()->evaluateScript($function);
    } catch (Exception $e) {
        throw new Exception('Element not found');
    }
}

您可以在 javascript 中找到执行此操作的方法:How to get anchor text/href on click using jQuery?

然后使用 file_get_contents 返回的 URL(取决于文件类型)就可以了。