Codeception ->see("String") 失败但 ->seeInSource("String") 成功
Codeception ->see("String") fails but ->seeInSource("String") succeeds
我的 AcceptanceTester->see()
方法有问题。它看不到源代码中明显存在的内容,如 AcceptanceTester->seeInSource()
方法所示。
这是我的测试,它在 Codeception 的 WP-Browser
实现中的 PHPBrowser
中运行:
public function testAfricaIsVisible(AcceptanceTester $I) {
$I->amOnPage('/');
$I->seeResponseCodeIs(200);
$I->seeInSource('Africa');
$I->see('Africa');
}
这是我得到的结果:
如您所见,->SeeInSource("Africa")
有效,但 ->see("Africa")
失败。
我理解 ->SeeInSource()
sometimes "sees" things that ->see()
doesn't,但在这种情况下,“非洲”一词是 link 文本,应用或不应用 strip_tags()
都应该清晰可见。
在这种情况下,当我打开 Html
link 时,“非洲”一词清晰可见:
有人知道为什么 Codeception 没有 ->see()
这篇文章吗?
我明白了。对于有类似问题的任何人,根本问题是格式错误的 HTML,被 Chrome/Firefox 掩盖了,但正如 Phpbrowser
所看到的那样搞砸了网站。我敢打赌,如果我改用 WebDriver
模块,它会起作用。
解决方案:使用HTML验证工具并修复报告的语法错误。
在这种情况下,它是一个带有单引号的 title
标签,例如title='doesn't'
我的 AcceptanceTester->see()
方法有问题。它看不到源代码中明显存在的内容,如 AcceptanceTester->seeInSource()
方法所示。
这是我的测试,它在 Codeception 的 WP-Browser
实现中的 PHPBrowser
中运行:
public function testAfricaIsVisible(AcceptanceTester $I) {
$I->amOnPage('/');
$I->seeResponseCodeIs(200);
$I->seeInSource('Africa');
$I->see('Africa');
}
这是我得到的结果:
如您所见,->SeeInSource("Africa")
有效,但 ->see("Africa")
失败。
我理解 ->SeeInSource()
sometimes "sees" things that ->see()
doesn't,但在这种情况下,“非洲”一词是 link 文本,应用或不应用 strip_tags()
都应该清晰可见。
在这种情况下,当我打开 Html
link 时,“非洲”一词清晰可见:
有人知道为什么 Codeception 没有 ->see()
这篇文章吗?
我明白了。对于有类似问题的任何人,根本问题是格式错误的 HTML,被 Chrome/Firefox 掩盖了,但正如 Phpbrowser
所看到的那样搞砸了网站。我敢打赌,如果我改用 WebDriver
模块,它会起作用。
解决方案:使用HTML验证工具并修复报告的语法错误。
在这种情况下,它是一个带有单引号的 title
标签,例如title='doesn't'