【问题标题】:Codeception PhpBrowser grabAttributeFrom throws Exception DOMDocument::loadXML()Codeception PhpBrowser grabAttributeFrom 抛出异常 DOMDocument::loadXML()
【发布时间】:2016-02-02 13:32:41
【问题描述】:

我将测试从 Codeception 2.0.9 更新到 2.1.5。

除了PhpBrowser::grabAttributeFrom() 方法外,一切正常。我会得到一个这样的 PHPUnit 异常:

[PHPUnit_Framework_Exception] DOMDocument::loadXML(): Entity 'nbsp' not defined in Entity, line: 3

[PHPUnit_Framework_Exception] DOMDocument::loadXML(): Opening and ending tag mismatch: img line 141 and a in Entity, line: 142

看来,grabAttributeFrom 对 HTML-DOM 解析非常严格。我用谷歌搜索了这条消息,发现DOMDocument::loadHtml() 不那么严格并且可以工作。

http://php.net/manual/en/domdocument.loadhtml.php

如何解决这个grabAttributeFrom?我需要 HTML 文件的 href/src 属性的内容。

【问题讨论】:

  • 你能得到堆栈跟踪吗?使用 -vvv 标志运行此测试。
  • 是否在同一个套件中启用了 REST 模块?
  • 哦。是的,这似乎是这个问题的解决方案。 REST 模块和 PhpBrowser 不再一起工作。 :( 我需要 REST Bundle 在这个测试中检查 HTTP-Headers。

标签: codeception


【解决方案1】:

@Naktibalda 的提示引导我自己解决问题。这是 REST 和 PhpBrowser 模块的冲突。两个模块都实现了函数grabAttributeFrom。要获得正确的,您必须更改配置中的顺序,以获得 PhpBrowser 之一:

modules:
  enabled:
    - REST:
        depends: PhpBrowser
        url: 'http://www.domain.com'
    - PhpBrowser:
        url: 'http://www.domain.com'

这对我有用,因为 PhpBrowser 现在推翻了构建的 AcceptanceTester.php 中的方法。

【讨论】:

    猜你喜欢
    • 2016-10-08
    • 2011-08-03
    • 2014-05-03
    • 1970-01-01
    • 2013-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-04
    相关资源
    最近更新 更多