有没有一种方法可以在测试目的下禁用固定标题/页脚/内容?

3

有没有办法为测试目的禁用粘性标头/页脚/内容?

我想像浏览器扩展程序一样拍摄整个网页截图,例如Fireshot。如果您知道,请给我建议。

jse.executeScript("var el = document.getElementsByTagName('*');"
                                    + "for(var i = 0; i < el.length; i++){"
                                    + "   if (el[i].getAttribute(\"type\") == \"text/css\")"
                                    + "         el[i].parentNode.removeChild(el[i]);"
                                    + "};"
                                    );

我能够 禁用所有CSS,但我的问题不是要禁用整个CSS,而只是固定/粘性标题 我的先前的问题
ArrayList<RemoteWebElement> totalElements = (ArrayList<RemoteWebElement>) jse.executeScript("var x = document.querySelectorAll('*');"
            + "for (var i = 0; i< x.length; i++) {"
            + "if (x[i].style.position == 'fixed' || x[i].style.position == 'absolute' || x[i].style.position == 'relative') {"
            + "x[i].style.position = 'static'"
            + "}"
            + "}"
            + "return x");

我正在使用这个,但结果不如预期。


我认为最好您告诉开发人员在您完成测试之前暂时禁用它。 - Helping Hands
1个回答

2
如果只覆盖标题的css属性会发生什么?例如:
((JavascriptExecutor) yourDriver).executeScript("document.getElementById('the_id_of_the_header').style.position = 'static';");

更新:

尝试使用以下JavaScript代码:

var elems = document.body.getElementsByTagName('*'); 
for(i = 0; i < elems.length; i++) 
{ 
  var elemStyle = window.getComputedStyle(elems[i]);
  if(elemStyle.getPropertyValue('position') == 'fixed') 
  { 
    elems[i].style.position = 'static'; 
  } 
}

如果你想检查更多的值,只需扩展if语句即可。


我们不知道该网站是否使用内联/内部/外部CSS,也不知道id-of header是什么。我们需要找到任何网站的所有粘性标题/内容以进行测试。感谢您的回复。 - Yash
@Yash:我更新了我的评论,请查看。我尝试使用不同的值,它对我起作用了。 - peetya
1
@Yash:问题出在这个网站上,滚动后会添加一个新的CSS类。因此,您应该在向下滚动后执行JS代码,它就可以正常工作了。 - peetya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接