2016-02-02 35 views
0

我將我的測試從Codeception 2.0.9更新到2.1.5。Codeception PhpBrowser grabAttributeFrom throws異常DOMDocument :: loadXML()

一切工作正常,除了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屬性的內容。

+0

你能得到堆棧跟蹤嗎?使用-vvv標誌運行此測試。 – Naktibalda

+1

是否在同一個套件中啓用了REST模塊? – Naktibalda

+0

哦。是的,這似乎是解決這個問題的方法。 REST模塊和PhpBrowser不再一起工作。 :( 我需要REST Bundle來檢查此測試中的HTTP頭。 – rickroyce

回答

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的方法。

相關問題