代码之家  ›  专栏  ›  技术社区  ›  user2305673

启用chrome headless时,黄昏测试失败

  •  0
  • user2305673  · 技术社区  · 7 年前

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

    我正在尝试对此进行Laravel黄昏测试,当我禁用--headless时测试工作正常,但如果--headless已启用,元素仍然可见。

    这是测试:

    $browser->访问(“/”)
    ->访问(新页面($param))。
    ->断言见(“元素文本”)
    ->访问(新页面($param))。
    ->assertDontsee(“元素文本”);
    < /代码> 
    
    

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

    检查 ->断言PlainCookieValue(“hide_element”,“hide”); 支持这一点。

    有办法解决这个问题吗?

    (编辑)这里是我试图隐藏的HTML元素:

    <div id=“cookie policy”class=“cookie policy”>
    <P>元素文本</P>
    &L/DIV & GT;
    < /代码> 
    
    

    截图

    元素显示:

    元素隐藏:

    下面是设置cookie的JS:

    document.cookie='hide_cookie_policy=hide;path=.domainname.com;expires=fri,31 dec 9999 23:59:59 gmt';
    < /代码> 
    
    

    我正在尝试对此进行一个Laravel黄昏测试,当我禁用--headless时测试工作正常,但是如果启用--headless,元素仍然可见。

    以下是测试:

    $browser->visit('/')
        ->visit(new ThePage($param))
        ->assertSee('element text')
        ->visit(new ThePage($param))
        ->assertDontSee('element text');
    

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

    检查 ->断言PlainCookieValue(“hide_element”,“hide”); 支持这一点。

    有办法解决这个问题吗?

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

    <div id="cookiePolicy" class="cookie-policy">
        <p>element text</p>
    </div>
    

    屏幕截图

    元素显示: enter image description here

    元素隐藏: enter image description here

    下面是设置cookie的JS:

    document.cookie = 'hide_cookie_policy=hide;path=.domainname.com;expires= Fri, 31 Dec 9999 23:59:59 GMT';
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Jonas Staudenmeir    7 年前

    ->setCapability('acceptInsecureCerts', true) DuskTestCase::driver()

    推荐文章