首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >启用无铬头时黄昏测试失败

启用无铬头时黄昏测试失败
EN

Stack Overflow用户
提问于 2018-07-31 18:13:02
回答 2查看 1.1K关注 0票数 3

我有一个HTML元素,应该只在第一个页面加载时显示。Javascript设置cookie,如果设置cookie,则不显示元素(PHP检查cookie,如果存在cookie,则不呈现内容)。

我正试着为这个做一个拉拉黄昏测试,当我禁用无头的时候,测试工作正常,但是如果-headless启用,元素仍然会被看到。

下面是一个测试:

代码语言:javascript
复制
$browser->visit('/')
    ->visit(new ThePage($param))
    ->assertSee('element text')
    ->visit(new ThePage($param))
    ->assertDontSee('element text');

这似乎是因为无头铬中的javascript没有设置cookie.

检查->assertPlainCookieValue('hide_element','hide');支持这一点。

有办法绕道吗?

(编辑)下面是我试图隐藏的HTML元素:

代码语言:javascript
复制
<div id="cookiePolicy" class="cookie-policy">
    <p>element text</p>
</div>

截图

元素显示:

元素Hides:

下面是设置cookie的JS:

代码语言:javascript
复制
document.cookie = 'hide_cookie_policy=hide;path=.domainname.com;expires= Fri, 31 Dec 9999 23:59:59 GMT';
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-01 14:54:46

该问题是由自签名SSL证书引起的。

->setCapability('acceptInsecureCerts', true)添加到DuskTestCase::driver()之后,cookie就可以工作了。

票数 4
EN

Stack Overflow用户

发布于 2022-06-17 17:02:24

我以一种稍微不同的方式取得了同样的结果,有些人可能会觉得.

在项目名称\test\DuskTestCase.php中,我修改了addArguments调用。

代码语言:javascript
复制
$options = (new ChromeOptions)->addArguments([
    '--disable-gpu',
    '--headless'
]);

...to这个..。

代码语言:javascript
复制
$options = (new ChromeOptions)->addArguments([
    '--disable-gpu',
    '--headless',
    '--ignore-certificate-errors'
]);

传递--ignore-certificate-errors参数似乎实现了与将acceptInsecureCerts功能设置为true相同的结果,同时保留了现有的功能。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51619633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档