【发布时间】:2013-08-04 17:28:49
【问题描述】:
我正在尝试通过 Behat/Mink 测试 RSS 提要。不幸的是,我一直收到一条错误消息:
当前节点列表为空。
有谁知道如何通过 Behat/Mink 测试 XML 响应(在 xml 中搜索字符串)?
编辑
我需要找到一些方法,最好是让它与 Behat/Mink 一起运行。 但如果那根本不可能,我也可以接受一种解决方法。 一个关于如何做到这一点的例子会很棒!
【问题讨论】:
我正在尝试通过 Behat/Mink 测试 RSS 提要。不幸的是,我一直收到一条错误消息:
当前节点列表为空。
有谁知道如何通过 Behat/Mink 测试 XML 响应(在 xml 中搜索字符串)?
编辑
我需要找到一些方法,最好是让它与 Behat/Mink 一起运行。 但如果那根本不可能,我也可以接受一种解决方法。 一个关于如何做到这一点的例子会很棒!
【问题讨论】:
在您的 FeatureContext.php 文件中,您可以通过
获取原始内容$xml = $this->getSession()->getDriver()->getContent();
然后就可以使用Regex/DomDocument来测试返回的xml内容了。
【讨论】:
file_get_contents()的答案为我解决了这个问题。假设上一步已将您发送到 XML 路径,您可以像这样获取:$xml = file_get_contents($this->getSession()->getCurrentUrl()); getCurrentUrl() 将返回完整的 URL,即使上一步将您定向到路径没有域名。
Mink 是一个浏览器仿真抽象层。有些浏览器可以阅读 RSS,有些则不能。解析自定义 XML 不是 Mink 的责任。为此使用 Behat + Web 爬虫 + DomDocument(或任何 PHP RSS 解析器)的组合。
【讨论】: