当前位置: 首页 > 知识库问答 >
问题:

代码欺骗PhpBrowser grab属性从抛出异常DOM文档::loadXML()

程胡非
2023-03-14

我更新了我的测试从代码欺骗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

我如何修复此抓取属性从?我需要一个超文本标记语言文件的href/src属性的内容。

共有1个答案

唐彬炳
2023-03-14

@Naktibalda的暗示引导我找到了解决方案。这是模块REST和PhpBrowser的冲突。这两个模块都实现了函数grabAtiniteOf。为了得到正确的,你必须改变配置中的顺序,以获得PhpBrowser的顺序:

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

这对我来说是可行的,因为PhpBrowser现在否决了builded AcceptanceTester.php中的方法。

 类似资料:
  • 我有一个PHP应用程序,我们正在添加测试,使用代码欺骗。我们试图添加指定(和验证)到我们的套件,但它不被识别。你如何正确设置指定与代码欺骗一起使用? 在我的composer.json中,我有以下内容: 我在添加指定和验证后运行了作曲家更新,并获得了以下输出: 我有一个这样的测试(主要是由generate:test生成的): 当我运行单元测试时,我会得到以下输出: 我使用的参考文献是:http://

  • 我已经按照他们网站上的指南安装了Codeception。创建第一个测试。 $I=新WebGuy($scenario); $I- $I- $I- 当我们开始测试php codecept.phar运行时,我们得到了什么: Codeception PHP测试框架v1.6.5由Sebastian Bergmann的PHPUnit 3.7.23提供支持。PHP注意:在第163行的phar://C:/wamp

  • 我正在编写一组简单的PHP函数,我只使用纯PHP7,没有框架,什么都没有。这些函数稍后将在CMS中的插件中使用,但这不是重点。我想使用Codeception为我的函数编写单元测试(为了熟悉它,我知道Codeception基本上只在这里运行PHPUnit),但我真的不知道如何以合理的方式将Codeception指向我的代码。 我的结构如下:我有,其中包含我想要测试的函数,大致如下: 我使用Compo

  • 我试图在每个测试套件开始时进行一个API调用,但没有找到这样做的方法。在我的模块中,我重载了方法,但是当我试图从REST模块调用时,我得到了错误。我的模块类看起来像这样: 这给了我一个PHP错误: 对/../vendor/codeception/codeception/src/codeception/Module/REST.php:476中的非对象调用成员函数request() 我如何在\u be

  • 当使用带有PhpBrowser驱动程序的REST模块从代码欺骗测试发出请求时,没有数据和文件通过Silex应用程序。 更改Content-Type标头 将传递给sendPOST的文件数组更改为以下数组: 文件路径文件对象(UploadedFile) 文件数组 该测试可与Silex驱动程序一起使用,但在CI服务器上这不是一个选项。此外,我们还与邮递员进行了检查,API路由按预期工作,文件已发送,一切

  • 当我在验收测试中更改应用程序模型时,测试实际使用该模型,当我在功能测试中更改应用程序模型时。。。测试仍然使用yii/web/application,我需要它来使用我的公共/组件/应用程序模型。我怎样才能改变这一点? 功能_bootstrap包含我的自定义模型...(通用/组件/应用程序)我完全困惑...... 当我运行测试代码时: 然后我得到错误: 这个nowSQL是在common\compone