>参考:
- 暂时禁用 CSS 过渡效果的最干净方法是什么?
- http://onezeronull.com/2016/10/06/disable-css-transitions-and-animations-temporarily-or-permanently/
每当我需要运行测试 JavaScript 时,我都会使用JavascriptExecutor
但上面的博客都没有阐明如何使用它来完成它。
我试过了:
js.executeScript(".notransition {
-webkit-transition: none !important;
-moz-transition: none !important;
-o-transition: none !important;
-ms-transition: none !important;
transition: none !important;
}");
但它对我没有任何作用。
编辑:
我尝试了@AmerllicA提供的答案
public void turnOffCss () {
navigate("https://www.bureauofdigital.com");
js.executeScript("*, *:before, *:after {
-webkit-transition: none !important;
-moz-transition: none !important;
-ms-transition: none !important;
-o-transition: none !important;
transition: none !important;
-webkit-transform: none !important;
-moz-transform: none !important;
-ms-transform: none !important;
-o-transform: none !important;
transform: none !important;
}");
}
我为您的确切问题提供了另一个答案JavaScript Executor
. 让我们澄清一下JavaScript
代码,
- 创建一个
style
标签元素。 - 添加具有
style-tag
值id
属性。 - 做一串那个
CSS
es 我在另一个答案中回答了。 - 将字符串放入或追加到
style
标记中。 - 将
style
附加到DOM
中的head
标记。
现在让我们将上面的状态写成JavaScript
代码:
const styleElement = document.createElement('style');
styleElement.setAttribute('id','style-tag');
const styleTagCSSes = document.createTextNode('*,:after,:before{-webkit-transition:none!important;-moz-transition:none!important;-ms-transition:none!important;-o-transition:none!important;transition:none!important;-webkit-transform:none!important;-moz-transform:none!important;-ms-transform:none!important;-o-transform:none!important;transform:none!important}');
styleElement.appendChild(styleTagCSSes);
document.head.appendChild(styleElement);
使用此代码,您可以将我的另一个答案导入CSS
es 到DOM
. 所以你可以把下面的字符串放到你的JavaScript Executor
:
"const styleElement = document.createElement('style');styleElement.setAttribute('id','style-tag');const styleTagCSSes = document.createTextNode('*,:after,:before{-webkit-transition:none!important;-moz-transition:none!important;-ms-transition:none!important;-o-transition:none!important;transition:none!important;-webkit-transform:none!important;-moz-transform:none!important;-ms-transform:none!important;-o-transform:none!important;transform:none!important}');styleElement.appendChild(styleTagCSSes);document.head.appendChild(styleElement);"
如果要还原此操作,只需使用:
document.getElementById('style-tag').remove();
希望这些代码对您有所帮助。
您的问题标题是How to turn of CSS
,这意味着什么? 如果您的意思是所有过渡的轮流,请使用以下代码:
*, *:before, *:after {
-webkit-transition: none !important;
-moz-transition: none !important;
-ms-transition: none !important;
-o-transition: none !important;
transition: none !important;
}
我想您的访问权限只是通过JavaScript
,因此您无法访问:before
或:after
因此只需将*
添加到CSS
es即可省略所有transitions
。
但是有些动画和可爱的动作是通过transform
translate
CSS
属性方法制作的,所以如果你想省略所有的动画和动作,你必须使用以下代码:
*, *:before, *:after {
-webkit-transition: none !important;
-moz-transition: none !important;
-ms-transition: none !important;
-o-transition: none !important;
transition: none !important;
-webkit-transform: none !important;
-moz-transform: none !important;
-ms-transform: none !important;
-o-transform: none !important;
transform: none !important;
}
这段代码绝对粉碎了所有的网站 UI,但可能会帮助您运行测试。