我有一个 HTML 元素,该元素应该仅在第一页加载时显示。 Javascript 设置 cookie,如果设置了 cookie,则不会显示该元素(PHP 检查 cookie,如果 cookie 存在,则不会呈现内容)。
我正在尝试为此进行 laravel dusk 测试,当我禁用 --headless 时测试工作正常,但如果启用 --headless 则仍然可以看到该元素。
这是测试:
$browser->visit('/')
->visit(new ThePage($param))
->assertSee('element text')
->visit(new ThePage($param))
->assertDontSee('element text');
这似乎是因为无头 Chrome 中的 javascript 没有设置 cookie。
检查
->assertPlainCookieValue('hide_element', '隐藏');
支持这一点。
有没有解决的办法?
(编辑)这是我试图隐藏的 HTML 元素:
<div id="cookiePolicy" class="cookie-policy">
<p>element text</p>
</div>
截图
Element shows:
Element Hides:
设置cookie的JS如下:
document.cookie = 'hide_cookie_policy=hide;path=.domainname.com;expires= Fri, 31 Dec 9999 23:59:59 GMT';
该问题是由自签名 SSL 证书引起的。
添加后->setCapability('acceptInsecureCerts', true)
to DuskTestCase::driver()
,cookie 起作用了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)