他们是否有任何方法可以禁用粘性页眉/页脚/内容以进行测试

时间:2015-07-14 07:37:42

标签: javascript html css selenium

他们是否可以禁用粘性页眉/页脚/内容以进行测试

我希望将整个网页屏幕截图视为浏览器扩展程序。像火焰一样 如果你知道的话请建议我。

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]);"
                                    + "};"
                                    );

我能够disable all css。但我的问题不是禁用整个CSS只有固定/粘性标题my previous question

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");

我正在使用此功能但未按预期工作。

1 个答案:

答案 0 :(得分:1)

如果只覆盖标题的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语句。