我有一个HTML元素,该元素应该仅在首页加载时显示。 Javascript设置了一个cookie,如果设置了cookie,则不会显示该元素(如果存在cookie,PHP将检查cookie,并且不呈现内容)。
我正在尝试对此进行laravel黄昏测试,并且当我禁用--headless时,该测试工作正常,但是如果启用了--headless,则仍然可以看到该元素。
这是测试:
$browser->visit('/')
->visit(new ThePage($param))
->assertSee('element text')
->visit(new ThePage($param))
->assertDontSee('element text');
这似乎是因为无头Chrome中的javascript没有设置Cookie。
检查 -> assertPlainCookieValue('hide_element','hide'); 支持这一点。
有没有办法解决这个问题?
(编辑)这是我要隐藏的HTML元素:
<div id="cookiePolicy" class="cookie-policy">
<p>element text</p>
</div>
屏幕截图
这是设置cookie的JS:
document.cookie = 'hide_cookie_policy=hide;path=.domainname.com;expires= Fri, 31 Dec 9999 23:59:59 GMT';
答案 0 :(得分:1)
此问题是由自签名SSL证书引起的。
将->setCapability('acceptInsecureCerts', true)
添加到DuskTestCase::driver()
后,该cookie起作用。