有没有办法模拟水貂中的链接/按钮点击?

时间:2016-09-13 07:39:51

标签: phantomjs functional-testing mink

我正在使用无头浏览器(phantomjs)与 Mink 一起在我的网站上进行一些功能测试。
现在在此设置中,无法定期下载文件,例如:单击链接。因此,我必须从链接按钮中提取网址,然后手动下载该文件。

正如我刚才所述,下载时没有链接( ),但是表单中的按钮(例如:在表单中输入报表数据,并在提交时收到报告文件。)

所以我需要做的是 模拟 点击链接或按钮,然后提取发送的请求的数据,并使用该数据手动下载文件。

有没有办法做到这一点?
注意:我正在使用guzzle来实际下载文件。

1 个答案:

答案 0 :(得分:1)

嗯......我不知道你是否解决了这个问题,只是作为典型水貂方法的替代品。由于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(取决于文件类型)以及它。